Improving the Relationship Between B+-Tree and Memory Allocator for Persistent Memory

Wei Yan,Xingjun Zhang
DOI: https://doi.org/10.1109/icde60146.2024.00299
2024-01-01
Abstract:In the traditional volatile DRAM, the B + -Tree inter-acts with the memory allocator by specifying space requirements for scaling. However, the emergence of persistent memory (PM) as a potential substitute for DRAM heap implementation presents new challenges, including crash-consistent issues and limited performance. Prevalent solutions in both the allocators and B + - Trees are confronted with similar dilemmas between runtime performance and recovery efficiency. In this paper, we propose a novel crash-consistent protocol called ST-protocol (share and talk protocol) to address these dilemmas. The core idea of ST-protocol is overlapping the post-crash garbage collection of the allocator with the recovery of the B + -Tree, according to the shared node status. This overlapped process can be performed by multiple threads, according to the shared space layout. Consequently, both the allocator and index can achieve high runtime performance from the volatile components in DRAM without much compromising the recovery efficiency. We further propose a B + -Tree model and a new PM allocator as two interacting characters in ST-protocol, and the experimental results demonstrate that our design outperforms existing solutions by a large margin in both runtime performance and recovery efficiency.
What problem does this paper attempt to address?