文章

论文学习:Rethinking The Compaction Policies in LSM-trees

数据库相关论文学习

论文学习:Rethinking The Compaction Policies in LSM-trees

Wang, Hengrui, Jiansheng Qiu, Fangzhou Yuan, and Huanchen Zhang. “Rethinking The Compaction Policies in LSM-trees.” Proceedings of the ACM on Management of Data 3, no. 3 (2025): 1-26.

本文考虑LSM-treecompaction的调度策略。

insight

  • 假设完全不考虑读性能,LSM树的写性能在不同的compaction策略下是相同的。
    • 原因 1: Meta指出实际应用的写入数据大约只有50MB/s,远低于当前高性能NVMe SSD的写入能力(数GB/s),因此写入性能不是瓶颈。
    • 原因 2: 当前的高性能 NVMe SSD 提供了高并行度和高带宽,不再需要考虑flush和compation的并发问题,后台并行执行compaction期间,只要预留足够的后台写入带宽和CPU资源,flush性能总是可以不受影响。

由以上观察得到一个结论:传统的在读/写放大之间权衡的compaction调度策略不可取,建议compaction调度策略应该是在为flush预留足够资源的前提下最大化读性能

补充解释:

  • 在上面的假设下,类似用更大的写放大率来换取更高的读性能的策略是可取的
  • 但是如果写入数据量非常大,远超存储设备的写入能力,或者超过CPU计算能力,那么也会干扰读性能,因此还需要进行适当的控制。 </small>

本文的核心idea是:将compaction视作一种存储带宽和CPU资源的投资,compaction期间会影响瞬时读性能,但是compaction结束后会有有助于提升读性能。因此可以利用动态规划来调度compaction,最大化长期的读性能。

具体方案

提出EcoTune算法,假设客户端写入数据的速率恒定,通过动态规划来调度compaction,最大化未来一段时间内的读性能。

本文由作者按照 CC BY 4.0 进行授权