- HPDC论文系统学习(DStore: A Fast, Tailless, and Quiescent-Free Object Store for
PMEM)
摘要
本文作者介绍了一种新型的对象存储系统,具有更小的尾延迟的基于非忆失性存储的系统。
背景介绍
作者首先列举出了三种常见的存储系统架构:
cached架构
- 架构介绍
cached架构,非忆失性存储通常是作为缓存来加速系统速度的。这种情况下,cache中的数据最终是必须要被放到后端的持久性介质中。因此,检查点机制能够很好的帮助我们回收日志空间并重新分配。这种模式的问题就是在checkpoint过程中系统变得不可访问知道cache中的数据被持久化。这会对尾延迟造成
很大影响。- 缺点
我们选择了PMEM-RocksDB和MongoDB-PM(加入或者不加入checkpoint)进行对比。PMEM-RocksDB是基于LSM树的数据库存储引擎,通过把常驻日志放在PMEM中来提高性能。
MongoDB-PM使用了WireTiger作为存储引擎。把目录和日志文件存储在PMEM中来提高性能。这里的checkpoint作者使用了在NOVA文件系统中提出的copy-on-write技术。
最后的测试结果发现无论是哪一种模型,只要选择了checkpoint机制,尾延迟就有了很大的增加。
uncached架构
- 架构介绍
uncache架构下,所有的数据都是一次性完成持久化的。事务操作保证了原子化。因为数据直接一步持久化了,不需要检查点的存在了。最大的问题就是无法保证性能,即便是在使用了PMEM的情况下。造成这个问题的主要原因是CPUcache中的数据需要被及时flush到持久化存储介质中。但是在尾延迟表现上却比cache架构有更好的表现。