论文部分内容阅读
互联网即将进入5G时代,智慧终端和传感器等设备产生的数据呈指数级增长,对云基础设施的需求不断扩大。键值存储系统作为非结构化数据库的代表,在数据中心扮演着举足轻重的角色,其主要存储引擎是日志结构合并树(Log-StructuredMerge-Tree,LSM树)。但测试发现,由于LSM树的L0层SST文件的键范围存在重叠,加上L0层容量控制机制,使得LSM树的合并操作会引起系统写性能周期性波动。
针对键值存储系统的写性能周期性波动问题,提出了一种新型混合树键值存储系统BigMixDB的解决方案。首先,设计了一种新型混合树索引结构BigMixTree,BigMixTree采用两层结构(索引框架层和子B+树层),通过索引框架层的分流作用,以子B+树为单位统一组织LSM树的Memtable和硬盘L0层数据,避免了LSM树中L0层的SST文件键范围重叠问题。其次,基于BigMixTree索引结构设计了一种新型键值存储系统BigMixDB,BigMixDB利用BigMixTree将原本L0与L1层单次大数据量的合并操作转换为多次小数据量的合并操作,从而减少系统处于暂停写入状态的时间。另外,由于BigMixTree包含了内存Memtable与硬盘L0层数据,减少了BigMixDB的查询层次,BigMixDB的读性能有所提升。最后,基于BigMixTree重新设计了BigMIxDB的合并流程,确保BigMixTree与L1层的合并过程平稳且单次合并数据量小,从而解决键值存储系统的写性能周期性波动问题。
基于开源的LevelDB实现了BigMixDB原型,并在Intel服务器和华为云服务器上对BigMixDB和LevelDB做了对比测试。测试结果表明,BigMixDB能有效改善系统写性能周期性波动问题,波动程度仅为LevelDB的33.56%。同时,BigMixDB的随机写性能是LevelDB的1.64~2.06倍,随机读性能是LevelDB的1.10~1.75倍。
针对键值存储系统的写性能周期性波动问题,提出了一种新型混合树键值存储系统BigMixDB的解决方案。首先,设计了一种新型混合树索引结构BigMixTree,BigMixTree采用两层结构(索引框架层和子B+树层),通过索引框架层的分流作用,以子B+树为单位统一组织LSM树的Memtable和硬盘L0层数据,避免了LSM树中L0层的SST文件键范围重叠问题。其次,基于BigMixTree索引结构设计了一种新型键值存储系统BigMixDB,BigMixDB利用BigMixTree将原本L0与L1层单次大数据量的合并操作转换为多次小数据量的合并操作,从而减少系统处于暂停写入状态的时间。另外,由于BigMixTree包含了内存Memtable与硬盘L0层数据,减少了BigMixDB的查询层次,BigMixDB的读性能有所提升。最后,基于BigMixTree重新设计了BigMIxDB的合并流程,确保BigMixTree与L1层的合并过程平稳且单次合并数据量小,从而解决键值存储系统的写性能周期性波动问题。
基于开源的LevelDB实现了BigMixDB原型,并在Intel服务器和华为云服务器上对BigMixDB和LevelDB做了对比测试。测试结果表明,BigMixDB能有效改善系统写性能周期性波动问题,波动程度仅为LevelDB的33.56%。同时,BigMixDB的随机写性能是LevelDB的1.64~2.06倍,随机读性能是LevelDB的1.10~1.75倍。