LB+-Trees: Optimizing Persistent Index Performance on 3DXPoint Memory
Jihang Liu, Shimin Chen, Lujun Wang
Abstract
3DXPoint memory is the first commercially available NVM solution targeting mainstream computer systems. While 3DXPoint conforms to many assumptions about NVM in previous studies, we observe a number of distinctive features of 3DXPoint. For example, the number of modified words in a cache line does not affect the performance of 3DXPoint writes. This enables a new type of optimization: performing more NVM word writes per line in order to reduce the number of NVM line writes. We propose LB + -Tree, a persistent B + -Tree index optimized for 3DXPoint memory. LB + -Tree nodes are 256B or a multiple of 256B, as 256B is the internal data access size in 3DXPoint memory. We propose three techniques to improve LB + -Tree's insertion performance: (i) Entry moving, which reduces the number of NVM line writes for insertions by creating empty slots in the first line of a leaf node; (ii) Logless node split, which uses NAW (NVM Atomic Write) to reduce logging overhead; and (iii) Distributed headers, which makes (i) and (ii) effective for multi-256B nodes. Theoretical analysis shows that entry moving reduces the number of NVM line writes per insertion of the traditional design by at least 1.35x in a stable tree. Our micro-benchmark experiments on a real machine equipped with 3DXPoint memory shows that LB + -Tree achieves up to 1.12-2.92x speedups over state-of-the-art NVM optimized B + -Trees for insertions while obtaining similar search and deletion performance. Moreover, we study the benefits of LB + -Tree in two real-world systems: X-Engine, a commercial OLTP storage engine, and Memcached, an open source key-value store. X-Engine and Memcached results confirm our findings in the micro-benchmarks.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Cited by top-tier papers40
- Updatable Learned Index with Precise PositionsJiacheng Wu, Yong Zhang, Shimin Chen, Yu Chen et al.VLDB 2021 · 160 citations
- Viper: An Efficient Hybrid PMem-DRAM Key-Value StoreLawrence Benson, Hendrik Makait, Tilmann RablVLDB 2021 · 86 citations
- APEX: A High-Performance Learned Index on Persistent MemoryBaotong Lu, Jialin Ding, Eric Lo, Umar Farooq Minhas et al.VLDB 2022 · 73 citations
- ROART: Range-query Optimized Persistent ARTShaonan Ma, Kang Chen, Shimin Chen, Mengxing Liu et al.FAST 2021 · 73 citations
- PACTree: A High Performance Persistent Range Index Using PAC GuidelinesWook-Hee Kim, Madhava Krishnan Ramanathan, Xinwei Fu, Sanidhya Kashyap et al.SOSP 2021 · 61 citations
Related papers
- Zen: a High-Throughput Log-Free OLTP Engine for Non-Volatile Main MemoryGang Liu, Leying Chen, Shimin ChenVLDB 2021 · 31 citations
- PLIN: A Persistent Learned Index for Non-Volatile Memory with High Performance and Instant RecoveryZhou Zhang, Zhaole Chu, Peiquan Jin, Yongping Luo et al.VLDB 2023 · 39 citations
- NBTree: a Lock-free PM-friendly Persistent B+-Tree for eADR-enabled PM SystemsBowen Zhang, Shengan Zheng, Zhenlin Qi, Linpeng HuangVLDB 2022 · 41 citations
- BushStore: Efficient B+Tree Group Indexing for LSM-Tree in Non-Volatile MemoryZhenghao Wang, Lidan Shou, Ke Chen, Xuan ZhouICDE 2024 · 8 citations
- TreeLine: An Update-In-Place Key-Value Store for Modern StorageGeoffrey X. Yu, Markos Markakis, Andreas Kipf, Per-Åke Larson et al.VLDB 2023 · 36 citations
