Concurrent updating transactions on versioned data

  • Authors:
  • Tuukka Haapasalo;Seppo Sippu;Ibrahim Jaluta;Eljas Soisalon-Soininen

  • Affiliations:
  • Helsinki University of Technology, Espoo, Finland;University of Helsinki, Helsinki, Finland;Helsinki University of Technology, Espoo, Finland;Helsinki University of Technology, Espoo, Finland

  • Venue:
  • IDEAS '09 Proceedings of the 2009 International Database Engineering & Applications Symposium
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

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 concurrency-control 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.