Table of Contents
Fetching ...

BS-tree: A gapped data-parallel B-tree

Dimitrios Tsitsigkos, Achilleas Michalopoulos, Nikos Mamoulis, Manolis Terrovitis

TL;DR

BS-tree presents a memory-resident B$^+$-tree that exploits data-parallelism via SIMD by aligning node structure to memory blocks and enabling gaps through key duplication. A FOR-based compression reduces the memory footprint while preserving fast, branchless search and updates, yielding $O\left(\log_{f} n\right)$ performance where $f$ is the node capacity. Empirical results show BS-tree and its compressed variant CB$^S$-tree outperform state-of-the-art non-learned and learned indices across diverse real datasets and workloads, with favorable construction costs and memory usage. The work demonstrates strong practicality for in-memory indexing on contemporary hardware and outlines promising future directions, including GPU-hybrid designs and string-key support.

Abstract

We propose BS-tree, an in-memory implementation of the B+-tree that adopts the structure of the disk-based index (i.e., a balanced, multiway tree), setting the node size to a memory block that can be processed fast and in parallel using SIMD instructions. A novel feature of the BS-tree is that it enables gaps (unused positions) within nodes by duplicating key values. This allows (i) branchless SIMD search within each node, and (ii) branchless update operations in nodes without key shifting. We implement a frame of reference (FOR) compression mechanism, which allows nodes to have varying capacities, and can greatly decrease the memory footprint of BS-tree. We compare our approach to existing main-memory indices and learned indices under different workloads of queries and updates and demonstrate its robustness and superiority compared to previous work in single- and multi-threaded processing.

BS-tree: A gapped data-parallel B-tree

TL;DR

BS-tree presents a memory-resident B-tree that exploits data-parallelism via SIMD by aligning node structure to memory blocks and enabling gaps through key duplication. A FOR-based compression reduces the memory footprint while preserving fast, branchless search and updates, yielding performance where is the node capacity. Empirical results show BS-tree and its compressed variant CB-tree outperform state-of-the-art non-learned and learned indices across diverse real datasets and workloads, with favorable construction costs and memory usage. The work demonstrates strong practicality for in-memory indexing on contemporary hardware and outlines promising future directions, including GPU-hybrid designs and string-key support.

Abstract

We propose BS-tree, an in-memory implementation of the B+-tree that adopts the structure of the disk-based index (i.e., a balanced, multiway tree), setting the node size to a memory block that can be processed fast and in parallel using SIMD instructions. A novel feature of the BS-tree is that it enables gaps (unused positions) within nodes by duplicating key values. This allows (i) branchless SIMD search within each node, and (ii) branchless update operations in nodes without key shifting. We implement a frame of reference (FOR) compression mechanism, which allows nodes to have varying capacities, and can greatly decrease the memory footprint of BS-tree. We compare our approach to existing main-memory indices and learned indices under different workloads of queries and updates and demonstrate its robustness and superiority compared to previous work in single- and multi-threaded processing.
Paper Structure (26 sections, 14 figures, 4 tables, 6 algorithms)

This paper contains 26 sections, 14 figures, 4 tables, 6 algorithms.

Figures (14)

  • Figure 1: Example of B$^S$-tree
  • Figure 2: Comparison on successor search techniques in small uint arrays
  • Figure 3: B$^S$-tree leaf node structure
  • Figure 4: Updates to B$^S$-tree leaf node
  • Figure 5: Workload A : Read Only (100%)
  • ...and 9 more figures