论文部分内容阅读
基于日志结构合并树(Log-Structured Merged Tree,LSM-Tree)的键值存储系统由于良好的读写性能,受到越来越多的关注,已经成为近期存储系统研究的一个热点。然而,当前的LSM-Tree键值存储系统无法高效地处理频繁更新的倾斜负载,数据会频繁地写入到底层持久化设备,影响前台键值对的插入性能;同时,其内部存在写放大问题,并且文件元数据读取效率也存在改善的空间。
考虑到上述问题,针对以固态盘(Solid State Drive,SSD)为主要存储设备并引入了新型非易失型内存(Non-volatile Memory,NVM)的LSM-Tree键值存储系统进行了优化研究。首先,为了高效地处理频繁更新的倾斜负载,优化设计了持久性热数据缓存管理策略,利用NVM来缓存频繁更新的“热”数据,避免数据频繁地写入到SSD,降低系统的写延迟,并在缓存内部采用混合索引结构,保证在不牺牲系统范围查询功能的前提下,实现数据的高效插入和读取。其次,为了减小系统的写放大,提出了基于文件重叠率的分类合并策略,对合并涉及的SSTable文件采用并行分类合并操作,减少数据的重写量,并将空间放大控制在一定的范围内。最后,考虑到读操作频繁时元数据读取开销会影响到系统读性能,设计了文件数据和元数据分离存储策略,将文件数据存放在SSD中,而文件元数据存放在快速的NVM上,并采用专门的库来对元数据进行直接访问,降低元数据读取开销,改善系统读性能。
以开源的键值存储系统LevelDB为基础,应用上述优化技术实现了基于LSM-Tree的混合键值存储系统原型SNKV(SSD-NVM Key-Value)。测试结果表明,SNKV相比于国际先进的键值存储系统NoveLSM,对于倾斜负载写性能可以提高56%~5.5倍,对于非倾斜负载写放大可以降低27%~33%,写性能可以提高65%~72%。并且随着读请求数目的增加,SNKV的读性能相比于NoveLSM能够提高近2倍。
考虑到上述问题,针对以固态盘(Solid State Drive,SSD)为主要存储设备并引入了新型非易失型内存(Non-volatile Memory,NVM)的LSM-Tree键值存储系统进行了优化研究。首先,为了高效地处理频繁更新的倾斜负载,优化设计了持久性热数据缓存管理策略,利用NVM来缓存频繁更新的“热”数据,避免数据频繁地写入到SSD,降低系统的写延迟,并在缓存内部采用混合索引结构,保证在不牺牲系统范围查询功能的前提下,实现数据的高效插入和读取。其次,为了减小系统的写放大,提出了基于文件重叠率的分类合并策略,对合并涉及的SSTable文件采用并行分类合并操作,减少数据的重写量,并将空间放大控制在一定的范围内。最后,考虑到读操作频繁时元数据读取开销会影响到系统读性能,设计了文件数据和元数据分离存储策略,将文件数据存放在SSD中,而文件元数据存放在快速的NVM上,并采用专门的库来对元数据进行直接访问,降低元数据读取开销,改善系统读性能。
以开源的键值存储系统LevelDB为基础,应用上述优化技术实现了基于LSM-Tree的混合键值存储系统原型SNKV(SSD-NVM Key-Value)。测试结果表明,SNKV相比于国际先进的键值存储系统NoveLSM,对于倾斜负载写性能可以提高56%~5.5倍,对于非倾斜负载写放大可以降低27%~33%,写性能可以提高65%~72%。并且随着读请求数目的增加,SNKV的读性能相比于NoveLSM能够提高近2倍。