FB+-tree: A Memory-Optimized B+-tree with Latch-Free Update
Yuan Chen, Ao Li, Wenhai Li, Lingfeng Deng
Abstract
B + -trees are prevalent in traditional database systems due to their versatility and balanced structure. While binary search is typically utilized for branch operations, it may lead to inefficient cache utilization in main-memory scenarios. In contrast, trie-based index structures drive branch operations through prefix matching. While these structures generally produce fewer cache misses and are thus increasingly popular, they may underperform in range scans because of frequent pointer chasing.
This paper proposes a new high-performance B + -tree variant called
Feature B + -tree (FB + -tree
). Similar to employing bit or byte for branch operation in tries, FB + -tree progressively considers several bytes following the common prefix on each level of its inner nodes—referred to as features, which allows FB + -tree to benefit from prefix skewness. FB + -tree blurs the lines between B + -trees and tries, while still retaining balance. In the best case, FB + -tree almost becomes a trie, whereas in the worst case, it continues to function as a B + -tree. Meanwhile, a crafted synchronization protocol that combines the link technique and optimistic lock is designed to support efficient concurrent index access. Distinctively, FB + -tree leverages subtle atomic operations seamlessly coordinated with optimistic lock to facilitate latch-free updates, which can be easily extended to other structures. Intensive experiments on multiple workload-dataset combinations demonstrate that FB + -tree shows comparable lookup performance to state-of-the-art trie-based indexes and outperforms popular B + -trees by 2.3x 3.7x under 96 threads. FB + -tree also exhibits significant potential on other workloads, especially update workloads under contention and scan workloads.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 715063ac-e95a-469f-b21a-0a1a188adbbfCited by top-tier papers1
Ask how each one uses itBuilds on14
- ALEX: An Updatable Adaptive Learned IndexJialin Ding, Umar Farooq Minhas, Jia Yu, Chi Wang et al.SIGMOD 2020 · 274 citations
- A large scale analysis of hundreds of in-memory cache clusters at TwitterJuncheng Yang, Yao Yue, K. V. RashmiOSDI 2020 · 245 citations
- APEX: A High-Performance Learned Index on Persistent MemoryBaotong Lu, Jialin Ding, Eric Lo, Umar Farooq Minhas et al.VLDB 2022 · 73 citations
- LB+-Trees: Optimizing Persistent Index Performance on 3DXPoint MemoryJihang Liu, Shimin Chen, Lujun WangVLDB 2020 · 69 citations
- PilotScope: Steering Databases with Machine Learning DriversRong Zhu, Lianggui Weng, Wenqing Wei, Di Wu et al.VLDB 2024 · 18 citations
Related papers
- Bf-Tree: A Modern Read-Write-Optimized Concurrent Larger-Than-Memory Range IndexXiangpeng Hao, Badrish ChandramouliVLDB 2024 · 14 citations
- BP-tree: Overcoming the Point-Range Operation Tradeoff for In-Memory B-treesHelen Xu, Amanda Li, Brian Wheatman, Manoj Marneni et al.VLDB 2023 · 13 citations
- NBTree: a Lock-free PM-friendly Persistent B+-Tree for eADR-enabled PM SystemsBowen Zhang, Shengan Zheng, Zhenlin Qi, Linpeng HuangVLDB 2022 · 41 citations
- -Tree: A Gapped Data-Parallel B-TreeDimitrios Tsitsigkos, Achilleas Michalopoulos, Nikos Mamoulis, Manolis TerrovitisICDE 2026 · 4 citations
- OptiQL: Robust Optimistic Locking for Memory-Optimized IndexesGe Shi, Ziyi Yan, Tianzheng WangSIGMOD 2024 · 3 citations
