## Fully Persistent B-Trees

### BibTeX

@MISC{Brodal_fullypersistent,

author = {Gerth Stølting Brodal and Konstantinos Tsakalidis and Spyros Sioutas and Kostas Tsichlas},

title = {Fully Persistent B-Trees},

year = {}

}

### OpenURL

### Abstract

We present I/O-efficient fully persistent B-Trees that support range searches at any version in O(logB n + t/B) I/Os and updates at any version in O(logB n + log2 B) amortized I/Os, using space O(m/B) disk blocks. By n we denote the number of elements in the accessed version, by m the total number of updates, by t the size of the query’s output, and by B the disk block size. The result improves the previous fully persistent B-Trees of Lanka and Mays by a factor of O(logB m) for the range query complexity and O(logB n) for the update complexity. To achieve the result, we first present a new B-Tree implementation that supports searches and updates in O(logB n) I/Os, using O(n/B) blocks of space. Moreover, every update makes in the worst case a constant number of modifications to the data structure. We make these B-Trees fully persistent using an I/O-efficient method for full persistence that is inspired by the nodesplitting method of Driscoll et al. The method we present is interesting in its own right and can be applied to any external memory pointer based data structure with maximum in-degree din bounded by a constant and out-degree bounded by O(B), where every node occupies a constant number of blocks on disk. The I/O-overhead per modification to the ephemeral structure is O(din log2 B) amortized I/Os, and the space overhead is O(din/B) amortized blocks. Access to a field of an ephemeral block is supported in O(log2 din) worst case I/Os. 1

### Citations

598 | The ubiquitous B-tree
- COMER
- 1979
(Show Context)
Citation Context ...zed blocks. Access to a field of an ephemeral block is supported in O(log2 din) worst case I/Os. 1 Introduction B-Trees are the most common dynamic dictionary data structures used for external memory =-=[4, 7, 14]-=-. We study the problem of making B-Trees fully persistent in the I/O model [1]. This problem finds applications in the fields of databases [19] and computational geometry [23]. ∗ Center for Massive Da... |

561 |
The Input/Output complexity of sorting and related problems
- Aggarwal, Vitter
- 1988
(Show Context)
Citation Context ... case I/Os. 1 Introduction B-Trees are the most common dynamic dictionary data structures used for external memory [4, 7, 14]. We study the problem of making B-Trees fully persistent in the I/O model =-=[1]-=-. This problem finds applications in the fields of databases [19] and computational geometry [23]. ∗ Center for Massive Data Algorithmics - a Center of the Danish National Research Foundation Ordinary... |

256 | Making data structures persistent
- Driscoll, Sarnak, et al.
- 1989
(Show Context)
Citation Context ...s. In Table 1 we summarize the partially and fully persistent B-Trees that can be used in an online setting. All the previous persistent B-Trees follow an approach similar to those of Driscoll et al. =-=[10]-=- who present several generic and efficient techniques to make an ephemeral data structure partially or fully persistent in the pointer machine model. In particular, Driscoll et al. presented two metho... |

174 |
A comparison of access methods for time-evolving data
- Salzberg, Tsotras
- 1999
(Show Context)
Citation Context ...ictionary data structures used for external memory [4, 7, 14]. We study the problem of making B-Trees fully persistent in the I/O model [1]. This problem finds applications in the fields of databases =-=[19]-=- and computational geometry [23]. ∗ Center for Massive Data Algorithmics - a Center of the Danish National Research Foundation Ordinary dynamic data structures, such as B-Trees, are ephemeral, meaning... |

172 | An asymptotically optimal multiversion b-tree
- Becker, Gschwind, et al.
- 1996
(Show Context)
Citation Context ...iants of B-Trees have been made partially per602 Copyright © SIAM. Unauthorized reproduction of this article is prohibited.Partial Full Update I/Os Range Query I/Os TSB [17] logB n logB m † n/B MVBT =-=[5]-=- log 2 B n logB m+t/B MVAS [22] log 2 B n logB m+t/B ADT [2] logB m logB m+t/B FPBT [16] log 2 B n New logB n+log2B logB n+t/B (logBn+t/B) log B m Table 1: I/O-Bounds for persistent B-Trees used in an... |

161 |
Organization and maintenance of large ordered indices
- Bayer, McCreight
- 1972
(Show Context)
Citation Context ...zed blocks. Access to a field of an ephemeral block is supported in O(log2 din) worst case I/Os. 1 Introduction B-Trees are the most common dynamic dictionary data structures used for external memory =-=[4, 7, 14]-=-. We study the problem of making B-Trees fully persistent in the I/O model [1]. This problem finds applications in the fields of databases [19] and computational geometry [23]. ∗ Center for Massive Da... |

156 |
Two algorithms for maintaining order in a list
- DIETZ, SLEATOR
- 1987
(Show Context)
Citation Context ...versions of an ephemeral node. In order to find the appropriate version during navigation in the persistent node, as many version-ids must be compared in the version list, using the data structure of =-=[8]-=-. This causes Θ(B) I/Os in the worst case, since the version list is too large to fit in internal memory. By simple modifications an O(log 2 B) I/O-overhead per update and access step can be achieved.... |

123 | External-memory computational geometry
- Goodrich, Tsay, et al.
- 1993
(Show Context)
Citation Context ... B-Trees (MVBT) developed by Becker et al. [5], the Multiversion Access Structure (MVAS) of Varman and Verma [22] and the Time-Split B-Trees (TSB) of Lomet and Salzberg [17]. Moreover, the authors in =-=[12]-=- acquire partially persistent hysterical B-Trees [18] optimized for offline batched problems. The most efficient implementation of partially persistent B-Trees (ADT) was presented by Arge et al. [2] i... |

118 |
Symmetric binary B-trees: Data structure and maintenance algorithms
- Bayer
- 1972
(Show Context)
Citation Context ...(log B n) I/Os, and each update operation performs in the worst case O(1) modifications to the tree. In a similar manner, Driscoll et al. applied the lazy recoloring technique [21] on red-black trees =-=[3]-=- in order to obtain fully persistent red-black trees with O(log n) amortized time per insertion and deletion, O(log n) worst case time per access, and O(m) space. Our Incremental B-Trees can be seen a... |

95 | A new data structure for representing sorted lists
- S, Mehlhorn
- 1982
(Show Context)
Citation Context ...zed blocks. Access to a field of an ephemeral block is supported in O(log2 din) worst case I/Os. 1 Introduction B-Trees are the most common dynamic dictionary data structures used for external memory =-=[4, 7, 14]-=-. We study the problem of making B-Trees fully persistent in the I/O model [1]. This problem finds applications in the fields of databases [19] and computational geometry [23]. ∗ Center for Massive Da... |

92 |
Maintaining order in a linked list
- DIETZ
- 1982
(Show Context)
Citation Context ... T . If version j is obtained by modifying version i, version i is the parent of j in T . Similarly to [10] we store the preorder layout of T in a dynamic list that supports order maintenance queries =-=[9, 20, 8, 6]-=-, called the global version list (GVL). Given two versions i and j, an order maintenance query returns true if i lies before j in the list, and it returns false otherwise. To preserve the preorder lay... |

70 | An ecient multiversion access structure
- Varman, Verma
- 1997
(Show Context)
Citation Context ...e partially per602 Copyright © SIAM. Unauthorized reproduction of this article is prohibited.Partial Full Update I/Os Range Query I/Os TSB [17] logB n logB m † n/B MVBT [5] log 2 B n logB m+t/B MVAS =-=[22]-=- log 2 B n logB m+t/B ADT [2] logB m logB m+t/B FPBT [16] log 2 B n New logB n+log2B logB n+t/B (logBn+t/B) log B m Table 1: I/O-Bounds for persistent B-Trees used in an online setting. The number of ... |

63 | Two Simplified Algorithms for Maintaining Order in a List
- Bender, Cole, et al.
(Show Context)
Citation Context ... T . If version j is obtained by modifying version i, version i is the parent of j in T . Similarly to [10] we store the preorder layout of T in a dynamic list that supports order maintenance queries =-=[9, 20, 8, 6]-=-, called the global version list (GVL). Given two versions i and j, an order maintenance query returns true if i lies before j in the list, and it returns false otherwise. To preserve the preorder lay... |

62 | Algorithms and Data Structures for External Memory
- Vitter
- 2008
(Show Context)
Citation Context ...or external memory [4, 7, 14]. We study the problem of making B-Trees fully persistent in the I/O model [1]. This problem finds applications in the fields of databases [19] and computational geometry =-=[23]-=-. ∗ Center for Massive Data Algorithmics - a Center of the Danish National Research Foundation Ordinary dynamic data structures, such as B-Trees, are ephemeral, meaning that updates create a new versi... |

32 |
Maintaining order in a generalized linked list
- TSAKALIDIS
- 1984
(Show Context)
Citation Context ... T . If version j is obtained by modifying version i, version i is the parent of j in T . Similarly to [10] we store the preorder layout of T in a dynamic list that supports order maintenance queries =-=[9, 20, 8, 6]-=-, called the global version list (GVL). Given two versions i and j, an order maintenance query returns true if i lies before j in the list, and it returns false otherwise. To preserve the preorder lay... |

18 | A simple balanced search tree with O(1) worst-case update time
- Fleischer
- 1996
(Show Context)
Citation Context ...Incremental B-Trees have din=1 and an update operation makes O(1) modifications, it follows that updating the fully persistent Incremental B-Trees takes O(log B n + log 2 B) amortized I/Os. Fleischer =-=[11]-=- also presents (a, b)-Trees that make O(1) modifications per update operation, however they have din=ω(1). Thus, applying our method to them yields less efficient fully persistent B-Trees. 2 Fully Per... |

11 | Persistent data structures
- Kaplan
- 2001
(Show Context)
Citation Context ... persistence, where the additional operation of merging different versions together is allowed. Here, the versions form a directed acyclic graph (version DAG). A survey on persistence can be found in =-=[15]-=-. Previous Results The currently most efficient partially persistent B-Trees [2] achieve O(1) I/Ooverhead per operation. The currently most efficient fully persistent B-Trees [16] achieve multiplicati... |

7 |
Robust balancing in B-trees
- HUDDLESTON, MEHLHORN
- 1981
(Show Context)
Citation Context ...he size of the block is B and the size of the range query’s output is t. All structures occupy O(m/B) space. † The update time of the TSB is worst case. All other update bounds are amortized. sistent =-=[4, 7, 18, 13, 14]-=-. Salzberg and Tsotras’ [19] survey on persistent access methods and other techniques for time-evolving data provides a comparison among partially persistent B +-Trees used to process databases on dis... |

7 | Exploiting A History Database for Backup
- Lomet, Salzberg
- 1993
(Show Context)
Citation Context ...e query’s output. Multiple variants of B-Trees have been made partially per602 Copyright © SIAM. Unauthorized reproduction of this article is prohibited.Partial Full Update I/Os Range Query I/Os TSB =-=[17]-=- logB n logB m † n/B MVBT [5] log 2 B n logB m+t/B MVAS [22] log 2 B n logB m+t/B ADT [2] logB m logB m+t/B FPBT [16] log 2 B n New logB n+log2B logB n+t/B (logBn+t/B) log B m Table 1: I/O-Bounds for ... |

2 |
Sha-Mayn Teh. I/Oefficient point location using persistent B-trees
- Arge, Danner
(Show Context)
Citation Context ...er is allowed. Here, the versions form a directed acyclic graph (version DAG). A survey on persistence can be found in [15]. Previous Results The currently most efficient partially persistent B-Trees =-=[2]-=- achieve O(1) I/Ooverhead per operation. The currently most efficient fully persistent B-Trees [16] achieve multiplicative O(log B m) I/O-overhead per query operation and multiplicative O(log B n) I/O... |

1 |
Tsakalidis. AVL-trees for localized search
- Athanasios
- 1986
(Show Context)
Citation Context ...tions and deletions in O(log B n) I/Os, and each update operation performs in the worst case O(1) modifications to the tree. In a similar manner, Driscoll et al. applied the lazy recoloring technique =-=[21]-=- on red-black trees [3] in order to obtain fully persistent red-black trees with O(log n) amortized time per insertion and deletion, O(log n) worst case time per access, and O(m) space. Our Incrementa... |