Results 1 -
6 of
6
Making b + -trees cache conscious in main memory
- In Proceedings of the SIGMOD 2000 Conference
, 2000
"... 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 ..."
Abstract
-
Cited by 45 (3 self)
- Add to MetaCart
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 ofacachelineislowsincehalfofthespaceisused 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
Making B+-Trees Cache Conscious in Main Memory
- In Proceedings of the 2000 ACM SIGMOD International Conference on Management of Data
, 2000
"... 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 ..."
Abstract
-
Cited by 22 (0 self)
- Add to MetaCart
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 ...
B-trees with Inserts and Deletes: Why Free-at-empty is Better Than Merge-at-half
- Journal of Computer and System Sciences
, 1992
"... The space utilization of B-tree nodes determines the number of levels in the B-tree and hence its performance. Until now, the only analytical aid to the determination of a B-tree's utilization has been the analysis by Yao and related work. Yao showed that the utilization of B-tree nodes under pure i ..."
Abstract
-
Cited by 15 (0 self)
- Add to MetaCart
The space utilization of B-tree nodes determines the number of levels in the B-tree and hence its performance. Until now, the only analytical aid to the determination of a B-tree's utilization has been the analysis by Yao and related work. Yao showed that the utilization of B-tree nodes under pure inserts is 69%. We derive analytically and verify by simulation the utilization of B-tree nodes constructed from a mixture of insert and delete operations. Assuming that nodes only merge (i.e. are freed) when they are empty we show that the utilization is 39% when the number of inserts is the same as the number of deletes. However, if there are just 5% more inserts than deletes, then the utilization is over 62%. We also calculate the probability of splitting and merging. We derive a simple rule-of-thumb that accurately calculates the probability of splitting. We also model B-trees that merge half-empty nodes. The utilization of merge-at-half B-trees is slightly larger than the utilization of ...
The Performance of Concurrent Data Structure Algorithms
- Transactions on Database Systems
, 1994
"... This thesis develops a validated model of concurrent data structure algorithm performance, concentrating on concurrent B-trees. The thesis first develops two analytical tools, which are explained in the next two paragraphs, for the analysis. Yao showed that the space utilization of a B-tree built fr ..."
Abstract
-
Cited by 13 (9 self)
- Add to MetaCart
This thesis develops a validated model of concurrent data structure algorithm performance, concentrating on concurrent B-trees. The thesis first develops two analytical tools, which are explained in the next two paragraphs, for the analysis. Yao showed that the space utilization of a B-tree built from random inserts is 69%. Assuming that nodes merge only when empty, we show that the utilization is 39% when the number of insert and delete operations is the same. However, if there are just 5% more inserts than deletes, then the utilization is at least 62%. In addition to the utilization, we calculate the probabilities of splitting and merging, important parameters for calculating concurrent B-tree algorithm performance. We compare merge-at-empty B-trees with merge-at-half B-trees. We conclude that merge-at-empty Btrees have a slightly lower space utilization but a much lower restructuring rate than merge-at-half B-trees, making merge-at-empty B-trees preferable for concurrent B-tree algo...
Fringe Analysis Revisited
"... Fringe analysis is a technique used to study the average behavior of search trees. In this paper we survey the main results regarding this technique, and we improve a previous asymptotic theorem. At the same time we present new developments and applications of the theory which allow improvements in ..."
Abstract
-
Cited by 12 (6 self)
- Add to MetaCart
Fringe analysis is a technique used to study the average behavior of search trees. In this paper we survey the main results regarding this technique, and we improve a previous asymptotic theorem. At the same time we present new developments and applications of the theory which allow improvements in several bounds on the behavior of search trees. Our examples cover binary search trees, AVL trees, 2-3 trees, and B-trees. Categories and Subject Descriptors: F.2.2 [Analysis of Algorithms and Problem Complexity ]: Nonnumerical Algorithms and Problems -- computations on discrete structures; sorting and searching; E.1 [Data Structures]; trees. Contents 1 Introduction 2 2 The Theory of Fringe Analysis 4 3 Weakly Closed Collections 9 4 Including the Level Information 11 5 Fringe Analysis, Markov Chains, and Urn Processes 13 This work was partially funded by Research Grant FONDECYT 93-0765. e-mail: rbaeza@dcc.uchile.cl 1 Introduction Search trees are one of the most used data structures t...
An Algorithm for Full Text Indexing
, 1992
"... A fast B-tree based indexing algorithm is presented. In some applications, such as full text indexing or indexing of very large tables, the new algorithm can be orders of magnitude faster than conventional B-tree insertion algorithms, while still allowing concurrent access. A similar algorithm c ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
A fast B-tree based indexing algorithm is presented. In some applications, such as full text indexing or indexing of very large tables, the new algorithm can be orders of magnitude faster than conventional B-tree insertion algorithms, while still allowing concurrent access. A similar algorithm can be used for deletion.

