一个基于日志结构的非易失性内存键值存储系统
2018-09-21游理通王振杰黄林鹏
游理通 王振杰 黄林鹏
(上海交通大学计算机科学与工程系 上海 200240) (litong.you@sjtu.edu.cn)
近年来,随着大规模数据分析处理、数据密集型计算等技术的兴起和发展,内存计算也成为了更加重要的基础技术.这些技术都依赖于快速大容量的存储.除常见的磁盘、SSD和DRAM外,非易失存储器(non-volatile memory,NVM)技术正在快速发展,例如相变存储器(phase-change memory,PCM)[1]、自旋矩存储器(spin-torque transfer ram,STT-RAM)[2]和阻变存储器(resistive ram,ReRAM)[3]等.这类存储介质所共有的特点包括可字节寻址能力、接近DRAM的读写延迟以及数据的可持久性能力.DRAM和NVM可以抽象为统一的主存储空间,这种新的混合内存架构为建造更高速有效的大容量持久性存储系统(如文件系统、数据库等)带来了新的机遇.
在软件技术方面,以LevelDB[4],Dynamo[5]为代表的键值存储系统已经是业界使用的主流系统,这类存储系统在非结构化数据存储方面有很好的性能优势.现有较为成熟的键值存储系统都是针对磁盘或SSD进行优化设计实现的,它们依靠文件系统来存储数据,并进一步支持数据持久化.此外,针对非易失内存已有一些文件系统(如HMFS[6-7],PMFS[8],NOVA[9],Octopus[10]),但是依靠文件系统来存储数据,需要执行文件系统的代码,并且操作系统也要进行用户态和内核态之间的切换,这些都会带来一定的开销.由于非易失性内存的延时接近于DRAM,这种用户态/内核态切换开销对存储系统的性能的影响是不能忽略的.在基于DRAM内存存储系统方面,键值存储也是研究热点,如在实际中被广泛应用的Memcached[11]、性能非常好的MICA[12],但针对DRAM设计的系……
