Indexing for multiversion locking: Alternatives and performance evaluation
Abstract
Multiversion two-phase locking (MV2PL) provides on-line serializable queries without introducing the long blocking delays that can occur with conventional two-phase locking (2PL). MV2PL requires indexing structures, however, that are capable of supporting multiple versions of data. In this paper, we present several options for extending single-version indexing schemes for use with MV2PL. These basic approaches are largely orthogonal to the underlying indexing structure (e.g., hashing or B+ trees). The options considered differ in where they place version selection information (i.e., references to individual versions); this information is placed either with the data or with the index entries of one or more of the indices. We also present the results from a performance study that show that placing the version selection information with the data is usually the best option, since it keeps the indices smaller and thus enables a larger fraction of the index pages to remain cached in the buffer pool. © 1997 IEEE.