计算机研究与发展 ›› 2019, Vol. 56 ›› Issue (8): 1792-1802.doi: 10.7544/issn1000-1239.2019.20190110
• 系统结构 • 上一篇
王海涛,李战怀,张晓,赵晓南
Wang Haitao, Li Zhanhuai, Zhang Xiao, Zhao Xiaonan
摘要: 目前,键值(key-value, KV)存储系统在众多数据密集型的应用系统中发挥着关键作用,例如页面索引、电子商务以及云存储系统等.在各种键值存储系统中,基于日志结构合并(log-structured merge, LSM)树的KV存储系统获得了广泛的应用.主要原因是基于LSM树的KV存储系统能够将随机写操作转化为顺序写操作,从而提升数据写性能.然而,这些存储系统也存在一些严重的性能问题.一方面,KV存储系统利用预写日志机制来保证写入数据的原子性和安全性,以便在系统发生故障时进行恢复,造成了数据的写放大.同时,日志的频繁更新也引入了严重的元数据负载,导致了额外的性能开销.另一方面,KV存储系统通常利用通用文件系统存储数据,而通用文件系统中许多KV存储系统不需要的功能和属性也会造成一定的性能开销.为了减小这些开销、提升KV存储系统写入性能,提出了RocksFS,一个针对基于LSM树的KV存储系统优化的文件系统.针对KV存储系统的负载模式简化文件系统结构,去除通用文件系统引入的负载,同时优化预写日志的存储结构和更新流程以减小其更新负载,提升写入性能.最后在普通硬盘和固态硬盘上,基于流行的KV存储系统RocksDB验证了该方法的有效性,结果显示相对于通用文件系统,RocksFS能够将小块KV数据写入和更新性能提高约8倍.
中图分类号: