## Cache-oblivious B-trees (2000)

### Cached

### Download Links

- [erikdemaine.org]
- [supertech.csail.mit.edu]
- [daisy.uwaterloo.ca]
- [db.uwaterloo.ca]
- [www.cs.sunysb.edu]
- [www.cs.sunysb.edu]
- [www.cs.sunysb.edu]
- DBLP

### Other Repositories/Bibliography

Citations: | 145 - 23 self |

### BibTeX

@INPROCEEDINGS{Bender00cache-obliviousb-trees,

author = {Michael A. Bender and Erik D. Demaine and Martin Farach-colton},

title = {Cache-oblivious B-trees},

booktitle = {},

year = {2000},

pages = {399--409}

}

### Years of Citing Articles

### OpenURL

### Abstract

Abstract. This paper presents two dynamic search trees attaining near-optimal performance on any hierarchical memory. The data structures are independent of the parameters of the memory hierarchy, e.g., the number of memory levels, the block-transfer size at each level, and the relative speeds of memory levels. The performance is analyzed in terms of the number of memory transfers between two memory levels with an arbitrary block-transfer size of B; this analysis can then be applied to every adjacent pair of levels in a multilevel memory hierarchy. Both search trees match the optimal search bound of Θ(1+logB+1 N) memory transfers. This bound is also achieved by the classic B-tree data structure on a two-level memory hierarchy with a known block-transfer size B. The first search tree supports insertions and deletions in Θ(1 + logB+1 N) amortized memory transfers, which matches the B-tree’s worst-case bounds. The second search tree supports scanning S consecutive elements optimally in Θ(1 + S/B) memory transfers and supports insertions and deletions in Θ(1 + logB+1 N + log2 N) amortized memory transfers, matching the performance of the B-tree for B = B Ω(log N log log N).

### Citations

9061 | Introduction to Algorithms
- Cormen, Leiserson, et al.
- 2001
(Show Context)
Citation Context ...trarily large. Performance in the DAM model is measured in terms of the number of block transfers. Thus B-trees implement searches asymptotically optimally in the DAM model. The cache-oblivious model =-=[15,26]-=- is like the DAM model in that the objective is to minimize the number of data transfers between two levels. Unlike the DAM model, however, the parameters B, the block size, and M, the main-memory siz... |

1674 |
Distributed Algorithms
- Lynch
- 1996
(Show Context)
Citation Context ...bset of the incomplete operations) can be assigned a serialization point; each operation appears, from an external viewer’s perspective, as if it occurs exactly at the serialization point (see, e.g., =-=[16, 22]-=-). We also show that the lock-based data structures are deadlock free, i.e., that some operation always eventually completes. We show that the nonblocking B-tree is lock-free; that is, even if some pr... |

977 | Linearizability: A correctness condition for concurrent objects
- HERLIHY, WING
- 1990
(Show Context)
Citation Context ...bset of the incomplete operations) can be assigned a serialization point; each operation appears, from an external viewer’s perspective, as if it occurs exactly at the serialization point (see, e.g., =-=[16, 22]-=-). We also show that the lock-based data structures are deadlock free, i.e., that some operation always eventually completes. We show that the nonblocking B-tree is lock-free; that is, even if some pr... |

754 | Amortized efficiency of list update and paging rules - SLEATOR, TARJAN - 1985 |

598 | The ubiquitous B-tree
- COMER
- 1979
(Show Context)
Citation Context ...neral Terms: Algorithms, Theory. Keywords: Cache-Oblivious B-tree, Concurrent B-tree, NonBlocking, Lock Free, Exponential Tree, Packed-Memory Array. 1. INTRODUCTION For over three decades, the B-tree =-=[5,14]-=- has been the data structure of choice for maintaining searchable, ordered data on disk. Traditional B-trees are effective in large part because they minimize the number of disk blocks accessed during... |

561 |
The Input/Output complexity of sorting and related problems
- Aggarwal, Vitter
- 1988
(Show Context)
Citation Context ...51], though the proliferation of parameters in these models makes them cumbersome for algorithm design. A second body of work concentrates on two-level memory hierarchies, either main memory and disk =-=[4, 12, 32, 49, 50]-=- or cache and main memory [36, 45]. With these models the programmer must anticipate which level of the memory hierarchy is the bottleneck. For example, a B-tree that has been tuned to run on disk has... |

478 | An introduction to disk drive modeling - Ruemmler, Wilkes - 1994 |

384 | Tarjan, "Self-adjusting binary search trees - Sleator, E - 1985 |

265 |
Organization and maintenance of large ordered indexes
- BAYER, MCCREIGHT
- 1972
(Show Context)
Citation Context ... unknown. 1.2. B-Trees. In this paper, we initiate the study of dynamic cache-oblivious data structures by developing cache-oblivious search trees. The classic I/O-efficient search tree is the B-tree =-=[13]-=-. The basic idea is to maintain a balanced tree of N elements with node fanout proportional to the memory block size B. Thus, one block read determines the next node out of Θ(B) nodes, so a search com... |

249 | Algorithms for parallel memory I: Two-level memories - VITTER, SHRIVER - 1994 |

236 | A dichromatic framework for balanced trees - GUIBAS, SEDGEWICK - 1978 |

201 | Design and implementation of an efficient priority queue - Boas, Kaas, et al. - 1977 |

184 | An algorithm for the organization of information - ADEL’SON-VEL’SKII, LANDIS - 1962 |

177 |
I/O Complexity: The Red-Blue Pebbling Game
- Hong, Kung
- 1981
(Show Context)
Citation Context ...51], though the proliferation of parameters in these models makes them cumbersome for algorithm design. A second body of work concentrates on two-level memory hierarchies, either main memory and disk =-=[4, 12, 32, 49, 50]-=- or cache and main memory [36, 45]. With these models the programmer must anticipate which level of the memory hierarchy is the bottleneck. For example, a B-tree that has been tuned to run on disk has... |

170 | A fast Fourier transform compiler - Frigo - 1999 |

158 | The bu®er tree: A new technique for optimal I/O-algorithms - Arge - 1995 |

156 |
Two algorithms for maintaining order in a list
- DIETZ, SLEATOR
- 1987
(Show Context)
Citation Context .... Define the root node to have depth 0 and the leaf nodes to have depth d = lg Θ(P/ lg P ). 7 This problem is closely related to, but distinct from, the problem of answering linked-list order queries =-=[28, 16]-=-.sCACHE-OBLIVIOUS B-TREES 9 For each node, we define two density thresholds specifying the desired range on the node’s density. Let 0 < ρd < ρ0 < τ0 < τd = 1 be arbitrary constants. For a node k and t... |

150 | Surpassing the information theoretic bound with fusion trees - Fredman, Willard - 1993 |

142 | Randomized search trees - Aragorn, Seidel - 1989 |

138 | Should tables be sorted - Yao - 1981 |

133 |
A model for hierarchical memory
- Aggarwal, Alpern, et al.
- 1987
(Show Context)
Citation Context ... effects of the memory hierarchy on the running times of algorithms. There is a tradeoff between the accuracy of the model and its ease of use. One body of work explores multilevel memory hierarchies =-=[2, 3, 5, 7, 43, 44, 49, 51]-=-, though the proliferation of parameters in these models makes them cumbersome for algorithm design. A second body of work concentrates on two-level memory hierarchies, either main memory and disk [4,... |

130 | The Design of Dynamic Data Structures - Overmars - 1983 |

121 | The influence of caches on the performance of sorting - LaMarca, Ladner - 1997 |

117 | A uniform memory hierarchy model of computation
- Alpern, Carter, et al.
- 1994
(Show Context)
Citation Context ... effects of the memory hierarchy on the running times of algorithms. There is a tradeoff between the accuracy of the model and its ease of use. One body of work explores multilevel memory hierarchies =-=[2, 3, 5, 7, 43, 44, 49, 51]-=-, though the proliferation of parameters in these models makes them cumbersome for algorithm design. A second body of work concentrates on two-level memory hierarchies, either main memory and disk [4,... |

112 |
Hierarchical Memory with Block Transfer
- Aggarwal, Chandra, et al.
(Show Context)
Citation Context ... effects of the memory hierarchy on the running times of algorithms. There is a tradeoff between the accuracy of the model and its ease of use. One body of work explores multilevel memory hierarchies =-=[2, 3, 5, 7, 43, 44, 49, 51]-=-, though the proliferation of parameters in these models makes them cumbersome for algorithm design. A second body of work concentrates on two-level memory hierarchies, either main memory and disk [4,... |

107 | An Analysis of Dag-Consistent Distributed Shared-Memory Algorithms
- Blumofe, Frigo, et al.
- 1996
(Show Context)
Citation Context ...ence, Rutgers University, Piscataway, NJ 08855 (farach@cs.rutgers. edu). This author’s work was supported by NSF grant CCR-9820879. 1s2 M. A. BENDER, E. D. DEMAINE, AND M. FARACH-COLTON decomposition =-=[21, 46]-=- and static binary search [40]. These algorithms perform an asymptotically optimal number of memory transfers for any memory hierarchy and at all levels of the hierarchy. More precisely, the number of... |

98 | Locality of Reference in LU Decomposition with Partial Pivoting - Toledo - 1997 |

88 | Preserving order in a forest in less than logarithmic time and linear - BOAS, P - 1977 |

87 | Optimal dynamic interval management in external memory
- ARGE, VITTER
- 2003
(Show Context)
Citation Context ...in size, there are only O(loglogN) nodes on any rootto-leaf path, and the rebalancing scheme (where nodes are split and merged) is based on some weight-balance property, such as strong weight balance =-=[4, 8, 23, 25]-=-. Typically, if a node contains M elements, then its parent node contains something near M 2 elements. Each node in the tree is laid out in memory using a van Emde Boas layout, and the balancing schem... |

83 | Cache-oblivious algorithms
- Prokop
- 1999
(Show Context)
Citation Context ...trarily large. Performance in the DAM model is measured in terms of the number of block transfers. Thus B-trees implement searches asymptotically optimally in the DAM model. The cache-oblivious model =-=[15,26]-=- is like the DAM model in that the objective is to minimize the number of data transfers between two levels. Unlike the DAM model, however, the parameters B, the block size, and M, the main-memory siz... |

81 | Binary search trees of bounded balance - NIEVERGELT, REINGOLD - 1973 |

76 | A locality-preserving cache-oblivious dynamic dictionary
- Bender, Duan, et al.
- 2002
(Show Context)
Citation Context ...⌋⌋ ≤ x. Similarly, the 3 All logarithms are base 2 if not otherwise specified.s4 M. A. BENDER, E. D. DEMAINE, AND M. FARACH-COLTON B-tree • Simplification via packed-memory structure/low-height trees =-=[20, 25]-=- • Simplification and persistence via exponential structures [42, 17] • Implicit [29, 30] Static search trees • Basic layout [40] • Experiments [35] • Optimal constant factor [14] Linked lists support... |

69 | Cache-oblivious priority queue and graph algorithm applications
- Arge, Bender, et al.
- 2002
(Show Context)
Citation Context ...ce via exponential structures [42, 17] • Implicit [29, 30] Static search trees • Basic layout [40] • Experiments [35] • Optimal constant factor [14] Linked lists supporting scans [15] Priority queues =-=[8, 23, 26]-=- Trie layout [6, 19] Computational geometry • Distribution sweeping [22] • Voronoi diagrams [34] • Orthogonal range searching [1, 9] • Rectangle stabbing [10] Lower bounds Table 1.1 [24] Related work ... |

69 | Algorithms for parallel memory II: Hierarchical multilevel memories. Algorithmica - Vitter, Shriver - 1994 |

66 | Cache oblivious search trees via binary trees of small height
- Brodal, Fagerberg, et al.
- 2002
(Show Context)
Citation Context ...⌋⌋ ≤ x. Similarly, the 3 All logarithms are base 2 if not otherwise specified.s4 M. A. BENDER, E. D. DEMAINE, AND M. FARACH-COLTON B-tree • Simplification via packed-memory structure/low-height trees =-=[20, 25]-=- • Simplification and persistence via exponential structures [42, 17] • Implicit [29, 30] Static search trees • Basic layout [40] • Experiments [35] • Optimal constant factor [14] Linked lists support... |

63 | Two Simplified Algorithms for Maintaining Order in a List
- Bender, Cole, et al.
(Show Context)
Citation Context ..., but has no guarantee on the number of memory transfers for inserting, deleting, or scanning. This structure has been deamortized by Willard [52, 53, 54] and subsequently simplified by Bender et al. =-=[16]-=-. 7 At a high level, the packed-memory array keeps every interval of the array of size Ω(1) a constant fraction full, where the constant fraction depends on the interval size. When an interval of the ... |

62 | lists: A probabilistic alternative to balanced trees - Skip - 1989 |

62 | External memory algorithms - Vitter - 1998 |

54 | Towards a theory of cache-efficient algorithms - Sen, Chatterjee, et al. |

50 |
A sparse table implementation of priority queues
- Itai, Konheim, et al.
- 1981
(Show Context)
Citation Context ...s static search tree [40]. In Section 2.2, we describe a type of strongly weight-balanced search tree [11] useful for maintaining locality of reference. Following the work of Itai, Konheim, and Rodeh =-=[33]-=- and Willard [52, 53, 54], we develop a packed-memory array for maintaining an ordered collection of N items in an array of size O(N) subject to insertions and deletions in O(1 + log2 N B ) amortized ... |

41 | Extending the Hong-Kung model to memory hierarchies - Savage - 1995 |

41 | On the limits of cache-obliviousness - Brodal, Fagerberg - 2003 |

41 |
Deterministic Skip Lists
- Munro, Papadakis, et al.
- 1992
(Show Context)
Citation Context ...in size, there are only O(loglogN) nodes on any rootto-leaf path, and the rebalancing scheme (where nodes are split and merged) is based on some weight-balance property, such as strong weight balance =-=[4, 8, 23, 25]-=-. Typically, if a node contains M elements, then its parent node contains something near M 2 elements. Each node in the tree is laid out in memory using a van Emde Boas layout, and the balancing schem... |

41 | Tight(er) worst-case bounds on dynamic searching and priority queues
- Andersson, Thorup
- 2000
(Show Context)
Citation Context ... amortized O(log 2 N/B+log B N + 1) memory transfers. The amortized analysis allows that every once in a while the array can be cleaned up, e.g., when space is running out. An exponential search tree =-=[2,3]-=- can be used to transform a static CO search tree into a dynamic CO B-tree [7, 27]. An exponential search tree is similar in structure to a B-tree except that nodes vary dramatically in size, there ar... |

40 |
Sridhar Ramachandran. Cache-oblivious algorithms
- Frigo, Leiserson, et al.
- 1999
(Show Context)
Citation Context ...he-Oblivious Algorithms. The cache-oblivious model enables us to reason about a simple two-level memory but prove results about an unknown multilevel memory. This model was introduced by Frigo et al. =-=[31]-=- and Prokop [40]. They show that several basic problems—namely, matrix multiplication, matrix transpose, the fast Fourier transform (FFT), and sorting—have optimal algorithms that are cache oblivious.... |

39 | Faster deterministic sorting and searching in linear space
- Andersson
- 1996
(Show Context)
Citation Context ... amortized O(log 2 N/B+log B N + 1) memory transfers. The amortized analysis allows that every once in a while the array can be cleaned up, e.g., when space is running out. An exponential search tree =-=[2,3]-=- can be used to transform a static CO search tree into a dynamic CO B-tree [7, 27]. An exponential search tree is similar in structure to a B-tree except that nodes vary dramatically in size, there ar... |

33 | Scanning and traversing: Maintaining data for traversals in a memory hierarchy
- Bender, Cole, et al.
- 2002
(Show Context)
Citation Context ...ication and persistence via exponential structures [42, 17] • Implicit [29, 30] Static search trees • Basic layout [40] • Experiments [35] • Optimal constant factor [14] Linked lists supporting scans =-=[15]-=- Priority queues [8, 23, 26] Trie layout [6, 19] Computational geometry • Distribution sweeping [22] • Voronoi diagrams [34] • Orthogonal range searching [1, 9] • Rectangle stabbing [10] Lower bounds ... |

33 | Greed sort: Optimal deterministic sorting on parallel disks - Nodine, Vitter - 1995 |

32 | A density control algorithm for doing insertions and deletions in a sequentially ordered in good worst-case time - Willard - 1992 |

32 |
Optimised predecessor data structures for internal memory
- RAHMAN, COLE, et al.
- 2001
(Show Context)
Citation Context ... give a performance analysis. We conclude by discussing some interesting aspects of this data structure. Data structure description The data structure uses a strongly weight-balanced exponential tree =-=[2, 3, 7, 27]-=- to support searches and insertions. Each node in the tree contains child pointers and a pointer to the node’s right sibling (right-link) (see Figure 2). A node maintains the set of keys that partitio... |