BzTree
BzTree is a latch-free persistent B+ tree that uses PMwCAS for recoverable multi-word state changes.
Persistent allocation and descriptor recovery still matter. Allocation epochs distinguish unfinished in-node reservations after restart; consolidation later reclaims that space. Database transaction concurrency control remains outside the index. [1]
The inspected SFU implementation requests dependencies from floating master branches. Pinning its root commit alone does not reconstruct a historical build. [3]
Relations
- related
- PMwCAS, B+ tree, FPTree, Persistent memory, Crash consistency
Limitations
- The later PMDK implementation and original evaluation are different experimental systems; their results are not a controlled cross-study speedup. [2]
Citations
- Arulraj et al. BzTree: A High-Performance Latch-free Range Index for Non-Volatile Memory. PVLDB 11(5), 553-565, 2018, sections 3.1 and 6.
- Lersch et al. Evaluating Persistent Memory Range Indexes. PVLDB 13(4), 574-587, 2019, sections 5.1-5.2.
- SFU BzTree, revision b2e7fcb: backend selection and floating dependency revisions.
Further reading
Sources & caveats
- Source review and a replayed CMake configuration-fragment probe; no full index build, runtime experiment or power-cut test.