首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SSD的低延迟密钥-值存储

SSD的低延迟密钥-值存储
EN

Stack Overflow用户
提问于 2012-05-14 05:13:26
回答 4查看 3.2K关注 0票数 13

我们正在研究一种具有以下属性的SSD支持的键值解决方案:

  • 吞吐量: 10000 TPS;50/50 puts/gets;
  • 延迟:平均1ms,99.9百分位数10 1ms
  • 数据容量:~10亿个值,每个150字节;64位键;随机访问,20%的数据适合RAM。

我们使用不同的Linux调度程序、ext3 3/xfs文件系统,在商品SSD上尝试了KyotoCabinet、LevelDB和RethinkDB;使用重板凳进行了许多测试;发现在所有情况下:

  • 只读吞吐量/延迟非常好。
  • 写/更新-仅在整个过程中是适度的,但有许多高延迟离群值。
  • 混合读写工作负载甚至在直接访问块设备(绕过文件系统)的情况下,也会导致吞吐量/延迟的灾难性振荡。

下图说明了KyotoCabinet的这种行为(水平轴是时间,三个周期是清晰可见的-只读、混合、只更新)。

问题是:是否可以使用SSD实现所描述的SLA的低延迟,以及推荐使用什么键值存储?

EN

回答 4

Stack Overflow用户

发布于 2013-02-06 16:23:38

高度变化的写入延迟是SSD(特别是消费者模型)的一个常见属性。在这个AnandTech综述中有一个很好的解释。

总结是,SSD写性能恶化加班费,因为磨损水平的开销增加。当驱动器上的空闲页数减少时,NAND控制器必须启动碎片整理页,这会导致延迟。NAND还必须构建一个LBA来块映射,以跟踪数据在各个NAND块之间的随机分布。随着此映射的增长,地图上的操作(插入、删除)将变慢。

您将无法用SW方法解决低级别的HW问题,您需要升级到企业级的SSD或放松延迟需求。

票数 3
EN

Stack Overflow用户

发布于 2015-12-25 19:14:52

塞士派克是一个较新的键/值(行)存储,它可以完全脱离SSD,读写延迟时间小于1ms,并且TPS非常高(高达数百万)。

SSD有很大的随机读取访问权限,但是减少写入差异的关键是使用顺序IO (这类似于普通硬盘)。它也大大减少了磨损,平整和褪色,可能会发生大量的写入SSD。

如果您正在构建您自己的键值系统,请使用日志结构的方法(如Aerospike),这样编写就可以批量进行,并以大块的形式追加/编写。内存中的索引可以维护值的正确数据位置,而后台进程则从磁盘和碎片整理文件中清除陈旧/删除的数据。

票数 1
EN

Stack Overflow用户

发布于 2012-12-06 20:46:04

这是一种轻率的想法,但可能会奏效。假设您的SSD为128 is。

  1. 在SSD上创建128 on交换分区
  2. 将您的计算机配置为将其用作交换
  3. 在机器上安装memcached并设置128 on内存限制
  4. 基准测试

内核是否能够足够快地分页输入和输出内容?不可能知道。这更多地取决于您的硬件而不是内核。

波尔-亨宁坎普做一些非常类似的事情,在清漆,使内核保持跟踪的事情(虚拟和物理内存)的清漆,而不是让清漆做它。https://www.varnish-cache.org/trac/wiki/ArchitectNotes

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10577795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档