我们正在研究一种具有以下属性的SSD支持的键值解决方案:
我们使用不同的Linux调度程序、ext3 3/xfs文件系统,在商品SSD上尝试了KyotoCabinet、LevelDB和RethinkDB;使用重板凳进行了许多测试;发现在所有情况下:
下图说明了KyotoCabinet的这种行为(水平轴是时间,三个周期是清晰可见的-只读、混合、只更新)。
问题是:是否可以使用SSD实现所描述的SLA的低延迟,以及推荐使用什么键值存储?

发布于 2013-02-06 16:23:38
高度变化的写入延迟是SSD(特别是消费者模型)的一个常见属性。在这个AnandTech综述中有一个很好的解释。
总结是,SSD写性能恶化加班费,因为磨损水平的开销增加。当驱动器上的空闲页数减少时,NAND控制器必须启动碎片整理页,这会导致延迟。NAND还必须构建一个LBA来块映射,以跟踪数据在各个NAND块之间的随机分布。随着此映射的增长,地图上的操作(插入、删除)将变慢。
您将无法用SW方法解决低级别的HW问题,您需要升级到企业级的SSD或放松延迟需求。
发布于 2015-12-25 19:14:52
塞士派克是一个较新的键/值(行)存储,它可以完全脱离SSD,读写延迟时间小于1ms,并且TPS非常高(高达数百万)。
SSD有很大的随机读取访问权限,但是减少写入差异的关键是使用顺序IO (这类似于普通硬盘)。它也大大减少了磨损,平整和褪色,可能会发生大量的写入SSD。
如果您正在构建您自己的键值系统,请使用日志结构的方法(如Aerospike),这样编写就可以批量进行,并以大块的形式追加/编写。内存中的索引可以维护值的正确数据位置,而后台进程则从磁盘和碎片整理文件中清除陈旧/删除的数据。
发布于 2012-12-06 20:46:04
这是一种轻率的想法,但可能会奏效。假设您的SSD为128 is。
内核是否能够足够快地分页输入和输出内容?不可能知道。这更多地取决于您的硬件而不是内核。
波尔-亨宁坎普做一些非常类似的事情,在清漆,使内核保持跟踪的事情(虚拟和物理内存)的清漆,而不是让清漆做它。https://www.varnish-cache.org/trac/wiki/ArchitectNotes
https://stackoverflow.com/questions/10577795
复制相似问题