摘要
基于LSM-Tree的键值存储已经得到广泛使用。LSM-Tree通过将更新的数据缓存在内存中、随后批量写入磁盘的优化措施取得极高的写性能。然而,在基于LSM-Tree的键值存储中,被更新键值对的旧数据不会立即从存储系统中清除,导致整个存储系统中积累大量的无效数据,最终会显著降低键值存储的读性能。针对以上问题,提出一种更积极的压缩(compaction)方法,通过记录键值对更新的历史信息,识别出更新热点,在整个LSM-Tree存储系统中寻找无效数据大量聚集的SSTable,尽早实施压缩,清除无效数据,缓解写放大效应,从而提升读性能。实验表明,该方法能够降低LevelDB 65.2%的平均读时延、69.4%的99%读尾时延以及71.4%的写放大。
- 单位