Buffered Persistence in B+ Trees
Mingzhe Du, Michael L. Scott
Abstract
Non-volatile Memory (NVM) offers the opportunity to build large, durable B+ trees with markedly higher performance and faster post-crash recovery than is possible with traditional disk-or flash-based persistence. Unfortunately, cache flush and fence instructions, required for crash consistency and failure atomicity on many machines, introduce substantial overhead not present in non-persistent trees, and force additional NVM reads and writes. The overhead is particularly pronounced in workloads that benefit from cache reuse due to good temporal locality or small working sets-traits commonly observed in real-world applications.
In this paper, we propose a buffered durable B+ tree (BD+Tree) that improves performance and reduces NVM traffic via relaxed persistence. Execution of a BD+Tree is divided into epochs of a few milliseconds each; if a crash occurs in epoch 𝑒, the tree recovers to its state as of the end of epoch 𝑒 -2. (The persistence boundary can always be made current with an explicit sync operation, which quickly advances the epoch by 2.) NVM writes within an epoch are aggregated for delayed persistence, thereby increasing cache reuse and reducing traffic to NVM.
In comparison to state-of-the-art persistent B+ trees, our micro-benchmark experiments show that BD+Tree can improve throughput by up to 2.4 × and reduce NVM writes by up to 90% when working sets are small or workloads exhibit strong temporal locality. On real-world workloads that benefit from cache reuse, BD+Tree realizes throughput improvements of 1.1-2.4× and up to a 99% decrease in NVM writes. Even on uniform workloads, with working sets that significantly exceed cache capacity, BD+Tree still improves throughput by 1-1.3×. The performance advantage of BD+Tree increases with larger caches, suggesting ongoing benefits as CPUs evolve toward gigabyte cache capacities.
CCS Concepts: • Theory of computation → Data structures and algorithms for data management; • Hardware → Memory and dense storage; Non-volatile memory.
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.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 23f3e332-8f13-4be4-a2d9-3c020916647aBuilds on15
- DPTree: Differential Indexing for Persistent MemoryXinjing Zhou, Lidan Shou, Ke Chen, Wei Hu et al.VLDB 2020 · 74 citations
- ROART: Range-query Optimized Persistent ARTShaonan Ma, Kang Chen, Shimin Chen, Mengxing Liu et al.FAST 2021 · 73 citations
- LB+-Trees: Optimizing Persistent Index Performance on 3DXPoint MemoryJihang Liu, Shimin Chen, Lujun WangVLDB 2020 · 69 citations
- Understanding the Idiosyncrasies of Real Persistent MemoryShashank Gugnani, Arjun Kashyap, Xiaoyi LuVLDB 2021 · 67 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
- NBTree: a Lock-free PM-friendly Persistent B+-Tree for eADR-enabled PM SystemsBowen Zhang, Shengan Zheng, Zhenlin Qi, Linpeng HuangVLDB 2022 · 41 citations
- CCL-BTree: A Crash-Consistent Locality-Aware B+-Tree for Reducing XPBuffer-Induced Write Amplification in Persistent MemoryZhenxin Li, Shuibing He, Zheng Dang, Peiyi Hong et al.EuroSys 2024 · 4 citations
- Persist Level Parallelism: Streamlining Integrity Tree Updates for Secure Persistent MemoryAlexander Freij, Shougang Yuan, Huiyang Zhou, Yan SolihinMICRO 2020 · 31 citations
- BBB: Simplifying Persistent Programming using Battery-Backed BuffersMohammad A. Alshboul, Prakash Ramrakhyani, William Wang, James Tuck et al.HPCA 2021 · 34 citations
- BushStore: Efficient B+Tree Group Indexing for LSM-Tree in Non-Volatile MemoryZhenghao Wang, Lidan Shou, Ke Chen, Xuan ZhouICDE 2024 · 8 citations
