Artigo Revisado por pares

LB+Trees

2020; Association for Computing Machinery; Volume: 13; Issue: 7 Linguagem: Inglês

10.14778/3384345.3384355

ISSN

2150-8097

Autores

Jihang Liu, Shimin Chen, Lujun Wang,

Tópico(s)

Advanced Memory and Neural Computing

Resumo

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.

Referência(s)