本文介绍一下参考论文里的Compaction性能分析部分,作者在RocksDB的基础上做了多种策略的改造,然后提出了benchmarking方法论,关注compaction性能的哪些维度,并对结果进行分析。
一、Standardization of Compaction Strategies
1.1 实验平台的选择
作者选择了RocksDB作为实验平台,原因如下:
① 开源:RocksDB是开源的,便于修改和扩展。
② 广泛使用:在工业界和学术界都有广泛应用。
③ 社区活跃:有大量活跃的开发者和用户。
1.2 实现细节
作者对RocksDB进行了扩展,以支持多种Compaction策略。具体的实现也是按照Compaction设计空间的四个基础原语出发扩展的:
① Compaction触发器方面:实现了多种触发器,例如基于Level饱和度、Sorted Runs数量、文件陈旧度、空间放大和Tombstone-TTL等。
② 数据布局方面:实现了Leveling、Tiering、1-Leveling和Hybrid等数据布局。
③ Compaction粒度方面:支持Level、Sorted Runs、Sorted