A Concise Concurrent B + -Tree for Persistent Memory
Yan Ming Wei, Xingjun Zhang · ACM Transactions on Architecture and Code Optimization · 2023
Persistent memory (PM) presents a unique opportunity for designing data management systems that offer improved performance, scalability, and instant restart capability. As a widely used data structure for managing data in such systems, B + -Tree must address the challenges presented by PM in both data consistency and device performance. However, existing studies suffer from significant performance degradation when maintaining data consistency on PM. To settle this problem, we propose a new concurrent B + -Tree, CC-Tree, optimized for PM. CC-Tree ensures data consistency while providing high concurrent performance, thanks to several technologies, including partitioned metadata, log-free split, and lock-free read. We conducted experiments using state-of-the-art indices, and the results demonstrate significant performance improvements, including approximately 1.2–1.6x search, 1.5–1.7x insertion, 1.5–2.8x update, 1.9–4x deletion, 0.9–10x range scan, and up to 1.55–1.82x in hybrid workloads.