摘要
基于LSM-Tree的键值存储已经得到广泛使用。LSM-Tree通过将更新的数据缓存在内存中、随后批量写入磁盘的优化措施取得极高的写性能。然而,在基于LSM-Tree的键值存储中,被更新键值对的旧数据不会立即从存储系统中清除,导致整个存储系统中积累大量的无效数据,最终会显著降低键值存储的读性能。针对以上问题,提出一种更积极的压缩(compaction)方法,通过记录键值对更新的历史信息,识别出更新热点,在整个LSM-Tree存储系统中寻找无效数据大量聚集的SSTable,尽早实施压缩,清除无效数据,缓解写放大效应,从而提升读性能。实验表明,该方法能够降低LevelDB 65.2%的平均读时延、69.4%的99%读尾时延以及71.4%的写放大。
关键词: 键值存储 ; 日志结构合并树 ; 读性能优化 ; 写放大
0 引言
随着互联网的发展,数据规模与日俱增,大数据时代已经来临。在大数据时代背景下,有海量数据需要存储,如在电子商务、社交网络、网页搜索等场景,每天都需要存储和读取大量的数据。这就要求用一种高性能的数