2000•ACM SIGMOD RecordOpen access

Making B+- trees cache conscious in main memory

Jun Rao, Kenneth Andrew Ross

Open full text 377 citations

Abstract

Previous research has shown that cache behavior is important for main memory index structures. Cache conscious index structures such as Cache Sensitive Search Trees (CSS-Trees) perform lookups much faster than binary search and T-Trees. However, CSS-Trees are designed for decision support workloads with relatively static data. Although B + -Trees are more cache conscious than binary search and T-Trees, their utilization of a cache line is low since half of the space is used to store child pointers. Nevertheless, for applications that require incremental updates, traditional B + -Trees perform well. Our goal is to make B + -Trees as cache conscious as CSS-Trees without increasing their update cost too much. We propose a new indexing technique called “Cache Sensitive B + -Trees” (CSB + -Trees). It is a variant of B + -Trees that stores all the child nodes of any given node contiguously, and keeps only the address of the first child in each node. The rest of the children can be found by adding an offset to that address. Since only one child pointer is stored explicitly, the utilization of a cache line is high. CSB + -Trees support incremental updates in a way similar to B + -Trees. We also introduce two variants of CSB + -Trees. Segmented CSB + -Trees divide the child nodes into segments. Nodes within the same segment are stored contiguously and only pointers to the beginning of each segment are stored explicitly in each node. Segmented CSB + -Trees can reduce the copying cost when there is a split since only one segment needs to be moved. Full CSB + -Trees preallocate space for the full node group and thus reduce the split cost. Our performance studies show that CSB + -Trees are useful for a wide range of applications.

Open-access reader

About this research paper

What this paper is about

Previous research has shown that cache behavior is important for main memory index structures. Cache conscious index structures such as Cache Sensitive Search Trees (CSS-Trees) perform lookups much faster than binary search and T-Trees. However, CSS-Trees are designed for decision support workloads with relatively static data. Although B + -Trees are more cache conscious than binary search and T-Trees, their utilization of a cache line is low since half of the space is used to store child pointers. Nevertheless, for applications that require incremental updates, traditional B + -Trees perform well. Our goal is to make B + -Trees as cache conscious as CSS-Trees without increasing their update cost too much. We propose a new indexing technique called “Cache Sensitive B + -Trees” (CSB + -Trees). It is a variant of B + -Trees that stores all the child nodes of any given node contiguously, and keeps only the address of the first child in each node. The rest of the children can be found by adding an offset to that address. Since only one child pointer is stored explicitly, the utilization of a cache line is high. CSB + -Trees support incremental updates in a way similar to B + -Trees. We also introduce two variants of CSB + -Trees. Segmented CSB + -Trees divide the child nodes into segments. Nodes within the same segment are stored contiguously and only pointers to the beginning of each segment are stored explicitly in each node. Segmented CSB + -Trees can reduce the copying cost when there is a split since only one segment needs to be moved. Full CSB + -Trees preallocate space for the full node group and thus reduce the split cost. Our performance studies show that CSB + -Trees are useful for a wide range of applications.

Why it matters

OpenAlex reports 377 citations for this work. Citation counts describe recorded attention and do not establish research quality.

Key contribution

A contribution statement is not available in the OpenAlex record.

Method / approach

Method details are not available in the OpenAlex metadata.

Main findings

Findings are not separately available in the OpenAlex metadata.

Limitations

Limitations are not available in the OpenAlex metadata.

Applications

Application details are not available in the OpenAlex metadata.

Available abstract

Previous research has shown that cache behavior is important for main memory index structures. Cache conscious index structures such as Cache Sensitive Search Trees (CSS-Trees) perform lookups much faster than binary search and T-Trees. However, CSS-Trees are designed for decision support workloads with relatively static data. Although B + -Trees are more cache conscious than binary search and T-Trees, their utilization of a cache line is low since half of the space is used to store child pointers. Nevertheless, for applications that require incremental updates, traditional B + -Trees perform well. Our goal is to make B + -Trees as cache conscious as CSS-Trees without increasing their update cost too much. We propose a new indexing technique called “Cache Sensitive B + -Trees” (CSB + -Trees). It is a variant of B + -Trees that stores all the child nodes of any given node contiguously, and keeps only the address of the first child in each node. The rest of the children can be found by adding an offset to that address. Since only one child pointer is stored explicitly, the utilization of a cache line is high. CSB + -Trees support incremental updates in a way similar to B + -Trees. We also introduce two variants of CSB + -Trees. Segmented CSB + -Trees divide the child nodes into segments. Nodes within the same segment are stored contiguously and only pointers to the beginning of each segment are stored explicitly in each node. Segmented CSB + -Trees can reduce the copying cost when there is a split since only one segment needs to be moved. Full CSB + -Trees preallocate space for the full node group and thus reduce the split cost. Our performance studies show that CSB + -Trees are useful for a wide range of applications.

Key concepts: Computer science, Cache, Pointer (user interface), Parallel computing, Cache-oblivious algorithm, Cache invalidation, CPU cache, Cache algorithms

Related papers

Back to paper searchBrowse research topicsOriginal source
Making B+- trees cache conscious in main memory — Research Paper | ScholarLens