Making B+- trees cache conscious in main memory
- 16 May 2000
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGMOD Record
- Vol. 29 (2) , 475-486
- https://doi.org/10.1145/335191.335449
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.Keywords
This publication has 6 references indexed in Scilit:
- The Asilomar report on database researchACM SIGMOD Record, 1998
- Efficient differential timeslice computationIEEE Transactions on Knowledge and Data Engineering, 1998
- TheSB-tree an index-sequential structure for high-performance sequential accessActa Informatica, 1992
- Some average performance measures for the B-treeActa Informatica, 1985
- Cache MemoriesACM Computing Surveys, 1982
- Ubiquitous B-TreeACM Computing Surveys, 1979