Abstract:
Several B+-tree variants have been developed to exploit the performance potential of byte-addressable non-volatile
memory (NVM). In this paper, we attentively investigate the properties of B+-tree and find that, a conventional B+-tree node is a linear
structure in which key-value (KV) pairs are maintained from the zero offset of the node. These pairs are shifted in a unidirectional
fashion for insertions and deletions. Inserting and deleting one KV pair may inflict a large amount of write amplifications due to shifting
KV pairs. This badly impairs the performance of in-NVM B+-tree. In this paper, we propose a novel circular design for B+-tree. With
regard to NVM’s byte-addressability, our Circ-tree design embraces tree nodes in a circular structure without a fixed base address, and
bidirectionally shifts KV pairs in a node for insertions and deletions to minimize write amplifications. We have implemented a prototype
for Circ-Tree and conducted extensive experiments. Experimental results show that Circ-Tree significantly outperforms two
state-of-the-art in-NVM B+-tree variants, i.e., NV-tree and FAST+FAIR, by up to 1.6 and 8.6 , respectively, in terms of write
performance. The end-to-end comparison by running YCSB to KV store systems built on NV-tree, FAST+FAIR, and Circ-Tree reveals
that Circ-Tree yields up to 29.3% and 47.4% higher write performance, respectively, than NV-tree and FAST+FAIR
Citation:
Wang, C., Brihadiswarn, G., Jiang, X., & Chattopadhyay, S. (2022). Circ-tree: A B+-tree variant with circular design for persistent memory. IEEE Transactions on Computers, 71(2), 296–308. https://doi.org/10.1109/TC.2020.3047972