Multiversion Concurrency Control

from Wikipedia, the free encyclopedia

Multiversion Concurrency Control ( MCC , MVCC , multi-generational concurrency control ) is a procedure from database technology that is used to carry out concurrent access to a database as efficiently as possible without blocking or endangering the consistency of the database.

This ensures that a transaction never has to wait for database objects. For this purpose, different versions of an object are kept internally. B. can be distinguished from one another by time stamps or continuously increased transaction numbers. Each object version then has a time stamp from the time it was written by any transaction T bel . In this way, transaction T i can read the current version of the object whose time stamp is less than TS (T i ), i.e. i.e. that of the transaction

was written.

Each object P also has a read timestamp RTS (P) (read timestamp) which indicates the start timestamp TS (T new ) of the transaction T new that P last read. If T i changes this object P and TS (T i ) <RTS (P) = TS (T new ) applies, the transaction T i is aborted and restarted. Otherwise, T i creates a new version of P and sets P's read-write timestamp to TS (T i ).

The disadvantage of this system is the cost of keeping many different versions of an object in the database. On the other hand, read access is never blocked, which can be very important in busy databases that are very often only read.

Databases with MVCC

Many of the database systems available today implement this technique:

See also

Individual evidence

  1. Basics and Terminology · ArangoDB v3.2.8 Documentation
  2. Berkeley DB Reference Guide: Degrees of Isolation ( Memento of the original from June 27, 2007 in the Internet Archive ) Info: The archive link was automatically inserted and not yet checked. Please check the original and archive link according to the instructions and then remove this notice. @1@ 2Template: Webachiv / IABot / oracle.com
  3. ^ CouchDB: The Definitive Guide - Eventual Consistency
  4. White paper by Roman Rokytskyy Firebird and Multi Version Concurrency Control ( Memento of the original from June 9, 2007 in the Internet Archive ) Info: The archive link was inserted automatically and has not yet been checked. Please check the original and archive link according to the instructions and then remove this notice. @1@ 2Template: Webachiv / IABot / firebirdsql.org
  5. developers.sones.de
  6. Multi-Version Concurrency Control in the H2 Database Engine
  7. ^ Bill Todd: InterBase: What Sets It Apart. (No longer available online.) 2000, archived from the original on February 26, 2006 . Info: The archive link was inserted automatically and has not yet been checked. Please check the original and archive link according to the instructions and then remove this notice. @1@ 2Template: Webachiv / IABot / dbginc.com
  8. MySQL 5.1 Reference Manual, Section 14.2.12: Implementation of Multi-Versioning
  9. MySQL 5.1 Reference Manual, Section 14.6.1: Falcon Features  ( page no longer available , search in web archivesInfo: The link was automatically marked as defective. Please check the link according to the instructions and then remove this notice.@1@ 2Template: dead link / mysql.org  
  10. ObjectStore Advanced C ++ User's Guide , chapter two ( Memento of the original dated August 23, 2007 in the Internet Archive ) Info: The archive link was inserted automatically and has not yet been checked. Please check the original and archive link according to the instructions and then remove this notice. @1@ 2Template: Webachiv / IABot / progress.com
  11. Oracle Database Concepts, Chapter 9 Data Concurrency and Consistency docs.oracle.com Multiversion Read Consistency
  12. PostgreSQL 8.3 Documentation, Chapter 12: Concurrency Control