In modern database applications access to historical versions of the dataset is becoming increasingly important. Several multiversion structures with corresponding concurrency-control and recovery algorithms exist, but none of these have optimal logarithmic execution times for all actions in all situations. The time-split B + -tree by Lomet et al. (TSBT) is used in the Immortal DB database prototype, but it does not consolidate pages. The multiversion B + -tree by Becker et al. (MVBT) is an asymptotically optimal multiversion structure that guarantees logarithmic execution times for all actions, but it lacks concurrency-control algorithms.It is our plan to design and implement several multiversion index structures with full concurrency-control and ARIESbased recovery algorithms and evaluate their performance. We will experiment with using a multiversion B + -tree as a historical storage, to which the updates of committed transactions are moved one at a time from a separate B + -tree. We will also consider using an optimized R-tree to store the multiversion data as two-dimensional line segments. To evaluate these solutions, we will also implement a straightforward B + -tree based solution that stores the different versions of a data item consecutively; and a solution based on the existing time-split B + -tree. We expect that the solution that uses a multiversion B + -tree will be the most efficient.
Modern database applications increasingly often require access to historical versions of the database. Storing such multiversion data in a single-version B + -tree database index is inefficient, especially for key-range queries. In this article, we present an index structure called the concurrent multiversion B + -tree (CMVBT) for efficiently storing and querying multiversion data.The CMVBT structure uses an asymptotically optimal transactional multiversion B + -tree (TMVBT) index as the main data storage, and a separate B + -tree index called the versioned B + -tree (VBT) to hold the updates of active transactions. The updates of committed transactions are moved, one transaction at a time, from the VBT into the TMVBT. This organization of two separate index structures allows us to maintain the asymptotic optimality guarantees of the TMVBT even in the presence of concurrent updating transactions.We provide concurrent algorithms for updating and reading the CMVBT structure. Our CMVBT algorithms can be used with the standard snapshot isolation concurrencycontrol and ARIES-based recovery algorithms to allow multiple read-only and updating transactions to operate concurrently on the structure. Transaction rollback is also supported for all updating transactions, either entirely or up to a preset savepoint.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.