PM-Blade: A Persistent Memory Augmented LSM-tree Storage for Database

Yinan Zhang, Huiqi Hu, Xuan Zhou, Enlong Xie, Hongdi Ren, Le Sheng Jin · 2023

In this paper, we present PM-Blade, an LSM-tree structured storage augmented with persistent memory (or non-volatile memory). PM-Blade utilizes persistent memory to optimize read performance and reduce write amplification, which are essential to Meituan’s online retail applications. Distinguished from existing designs, PM-Blade leverages persistent memory to drastically increase the capacity of the level-0 layer of LSM-tree. An enlarged level-0 layer allows a large amount of hot or warm data to be retained in persistent memory, enabling high read performance. At the same time, it works as a large write buffer that absorbs write amplification. To make the best of the design, we devised an internal compaction method and used a cost-based compaction strategy to maximize the utility of the level-0 layer. We implemented the compaction method using coroutines to improve its efficiency and resource utilization. We evaluated PM-Blade through extensive experiments, in which PM-Blade outperformed several open-source alternatives on standard benchmarks and a real-world workload of Meituan.

Read the paper · More papers on PaperTik