Bf-Tree: A Modern Read-Write-Optimized Concurrent Larger-Than-Memory Range Index
Xiangpeng Hao, Badrish Chandramouli
摘要
A B-Tree is the most widely used range index for larger-than-memory data systems. It organizes data in pages (usually 4 KB) that efficiently align with disk IO operations, fully utilizing each IO operation to narrow down the search space. On the other hand, a B-Tree's page-based organization leads to inefficient caching and high write amplification, as it needs to cache the entire page as a whole while often only a small subset of records are hot, and it needs to write the entire page for a single record update.
The key insight of this paper is to separate cache pages from disk pages , i.e., a cache page is no longer a pure mirror of its disk content, but instead, it forms a judiciously chosen subset of the disk page that is worth caching, and can absorb both read and write operations in a consistent manner. Based on this insight, we propose Bf-Tree, a modern B-Tree that is read-write-optimized by building a new variable-length buffer pool to manage such cache pages, called mini-pages. Bf-Tree uses this in-memory buffer pool to support efficient record-level caching, buffering recent updates, caching range gaps, as well as mirrors of disk pages when needed. We implement a fully featured and modern Bf-Tree in Rust with 13k lines of code, and show that Bf-Tree is 2.5× faster than RocksDB (LSM-Tree) for scan operations, 6× faster than a B-Tree for write operations, and 2× faster than both B-Trees and LSM-Trees for point lookups. We believe these results firmly establish a new standard for database storage engines of the future.
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了每一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
引用它的顶会 Paper6
- Mnemosyne: Dynamic Workload-Aware BF Tuning via Accurate Statistics in LSM treesZichen Zhu, Yanpeng Wei, Ju Hyoung Mun, Manos AthanassoulisSIGMOD 2025 · 被引用 3 次
- Predictive Translation: High-Performance Buffer Management Without the Trade-OffsMichael Zinsmeister, Lam-Duy Nguyen, Viktor Leis, Thomas NeumannSIGMOD 2026 · 被引用 3 次
- How to Write to SSDsBohyun Lee, Tobias Ziegler, Viktor LeisVLDB 2026 · 被引用 2 次
- SIDLE: Tree-structure Aware Indexes for CXL-based Heterogeneous MemoryHaoru Zhao, Mingkai Dong, Fangnuo Wu, Haibo ChenVLDB 2026 · 被引用 1 次
- Dynamic read & write optimization with TurtleKVTony Astolfi, Vidya Silai, Darby Huye, Lan Liu 等VLDB 2026
它引用的顶会 Paper23
- Sherman: A Write-Optimized Distributed B+Tree Index on Disaggregated MemoryQing Wang, Youyou Lu, Jiwu ShuSIGMOD 2022 · 被引用 99 次
- Evaluating Persistent Memory Range IndexesLucas Lersch, Xiangpeng Hao, Ismail Oukid, Tianzheng Wang 等VLDB 2020 · 被引用 97 次
- SplinterDB: Closing the Bandwidth Gap for NVMe Key-Value StoresAlexander Conway, Abhishek Gupta, Vijay Chidambaram, Martin Farach-Colton 等USENIX ATC 2020 · 被引用 90 次
- What Modern NVMe Storage Can Do, And How To Exploit It: High-Performance I/O for High-Performance Storage EnginesGabriel Haas, Viktor LeisVLDB 2023 · 被引用 83 次
- APEX: A High-Performance Learned Index on Persistent MemoryBaotong Lu, Jialin Ding, Eric Lo, Umar Farooq Minhas 等VLDB 2022 · 被引用 73 次
相关 Paper
- BP-tree: Overcoming the Point-Range Operation Tradeoff for In-Memory B-treesHelen Xu, Amanda Li, Brian Wheatman, Manoj Marneni 等VLDB 2023 · 被引用 13 次
- Closing the B+-tree vs. LSM-tree Write Amplification Gap on Modern Storage Hardware with Built-in Transparent CompressionYifan Qiao, Xubin Chen, Ning Zheng, Jiangpeng Li 等FAST 2022 · 被引用 23 次
- FB+-tree: A Memory-Optimized B+-tree with Latch-Free UpdateYuan Chen, Ao Li, Wenhai Li, Lingfeng DengVLDB 2025 · 被引用 2 次
- Range Cache: An Efficient Cache Component for Accelerating Range Queries on LSM - Based Key-Value StoresXiaoliang Wang, Peiquan Jin, Yongping Luo, Zhaole ChuICDE 2024 · 被引用 10 次
- B-Trees Are Back: Engineering Fast and Pageable Node LayoutsMarcus Müller, Lawrence Benson, Viktor LeisSIGMOD 2025 · 被引用 5 次
