Using Versions in Update Transactions: Application to Integrity Checking

This paper proposes an extension of the multiversion two phase locking protocol, called EMVZPL, which enables update transactions to use versions while guaranteeing the serializability of all transactions. The use of the protocol is restricted to transactions, called write-then-read transactions that consist of two consecutive parts: a write part containing both read and write operations in some arbitrary order, and an abusively called read part, containing read operations or write operations on data items already locked in the write part of the transaction. With EMVZPL, read operations in the read part use versions and read locks acquired in the write part can be released just before entering the read part. We prove the correctness of our protocol, and show that its implementation requires very few changes to classical implementations of MVZPL. After presenting various methods used by application developers to implement integrity checking, we show how EMV2PL can be effectively used to optimize the processing of update transactions that perform integrity checks. Finally, performance studies show the benefits of our protocol compared to a (strict) two phase locking protocol.

[1]  Michael J. Carey Modeling and Evaluation of Database Concurrency Control Algorithms , 1983 .

[2]  Patrick Valduriez,et al.  Transaction chopping: algorithms and performance studies , 1995, TODS.

[3]  Miron Livny,et al.  On Transaction Boundaries in Active Databases: A Performance Perspective , 1991, IEEE Trans. Knowl. Data Eng..

[4]  Miron Livny,et al.  Load control for locking: the “half-and-half” approach , 1990, PODS '90.

[5]  Miron Livny,et al.  Concurrency control performance modeling: alternatives and implications , 1987, TODS.

[6]  David P. Reed,et al.  Implementing atomic actions on decentralized data , 1983, TOCS.

[7]  Jennifer Widom,et al.  Deriving Production Rules for Constraint Maintainance , 1990, VLDB.

[8]  B. M. Horowitz A run-time execution model for referential integrity maintenance , 1992, [1992] Eighth International Conference on Data Engineering.

[9]  Paul M. Bober,et al.  On mixing queries and transactions via multiversion locking , 1992, [1992] Eighth International Conference on Data Engineering.

[10]  Umeshwar Dayal,et al.  Organizing long-running activities with triggers and transactions , 1990, SIGMOD '90.

[11]  Stephen Fox,et al.  The implementation of an integrated concurrency control and recovery scheme , 1982, SIGMOD '82.

[12]  C. Mohan Commit_LSN: A Novel and Simple Method for Reducing Locking and Latching in Transaction Processing Systems , 1996, Performance of Concurrency Control Mechanisms in Centralized Database Systems.

[13]  Gerald J. Popek,et al.  Cost and performance analysis of semantic integrity validation methods , 1979, SIGMOD '79.

[14]  Jim Gray,et al.  A critique of ANSI SQL isolation levels , 1995, SIGMOD '95.

[15]  Michael J. Carey,et al.  The performance of multiversion concurrency control algorithms , 1986, TOCS.

[16]  Hamid Pirahesh,et al.  ARIES: a transaction recovery method supporting fine-granularity locking and partial rollbacks using write-ahead logging , 1998 .

[17]  Alexander Thomasian Performance limits of two-phase locking , 1991, [1991] Proceedings. Seventh International Conference on Data Engineering.

[18]  P. Bernstein RRENCY CONTROL AND RECOVERY IN DATABASE SYSTEMS , 1998 .

[19]  Divyakant Agrawal,et al.  Using multiversion data for non-interfering execution of write-only transactions , 1991, SIGMOD '91.

[20]  Gilles M. E. Lafue Semantic Integrity Dependencies and Delayed Integrity Checking , 1982, VLDB.

[21]  Hamid Pirahesh,et al.  Efficient and flexible methods for transient versioning of records to avoid locking by read-only transactions , 1992, SIGMOD '92.

[22]  Divyakant Agrawal,et al.  Modular synchronization in multiversion databases: version control and concurrency control , 1989, SIGMOD '89.