本文介紹一下參考論文里的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