论文部分内容阅读
以键值存储系统为代表的非关系型数据库具有高性能、高扩展性与更灵活数据存储的特点,能满足大数据环境下的海量数据存储需求。日志结构合并树(Log Structured Merged-Tree,LSM-Tree)作为键值存储系统主流存储引擎之一,为系统提供优良的写入性能。然而LSM-Tree结构在合并数据时会带来较高的写放大,这严重限制键值存储系统写入性能的进一步提升。NVM(Non-Volatile Memory,非易失存储介质)是一种读写性能接近DRAM且具有非易失性的新型存储介质。因此,研究基于NVM与SSD混合存储结构的键值存储系统具有重要的实际应用意义。针对LSM-Tree结构键值存储系统的写放大问题,提出NVM与SSD混合存储的RangeKV(Range Key-Value)键值存储系统性能优化技术。在NVM上使用多个RangeTab结构来组织LSM-Tree的第0层键值数据,采用追加写数据的方式,提升数据写入RangeTab的效率;同时RangeTab结构增大第0层的容量,能够缩短LSM-Tree结构层数,减少系统的合并次数。为了提升RangeTab数据的查找性能,为键值数据构建哈希索引,可以快速定位其物理地址以及减少访问NVM的次数。此外,合并时采用双缓存结构,能够降低系统写入阻塞的时延,为了减少合并写放大,优先选取写放大比例最低的RangeTab数据参与合并,以提升合并效率,进一步提升系统写性能。基于开源RocksDB平台,本文实现了RangeKV系统,并对RangeKV与RocksDB以及NoveLSM方案进行了对比测试与性能评估。测试结果表明,RangeKV随机写性能是RocksDB的4.5~5.7倍,合并次数比RocksDB的减少了超过50%,平均合并数据量降低了40%左右,系统的写放大比例只有RocksDB的25%左右。另外,RangeKV方案与NoveLSM方案相比,也依然有较明显的性能优势。