Enzyklopädie > Artikel
MVCC
Multiversion concurrency control (MVCC) ist eine Technik, die manche Datenbankmanagementsysteme einsetzen, um parallele Datenzugriffe zu verarbeiten.
Um die ACID-Kriterien zu erfüllen, muss ein DBMS Datenmanipulationen, die parallel von zwei oder mehreren Clients durchgeführt werden, voneinander trennen. Es gibt zwei etablierte Methoden um das zu erreichen, nämlich entweder mittels Locks, wobei die Zugriffe soweit wie nötig serialisiert werden, oder MVCC.
MVCC funktioniert so, dass bei Datenänderungen der frühere Stand der Daten aufbewahrt wird. Die einzelnen Datenstände sind mit einem Timestamp oder einer fortlaufenden Transaktions-ID markiert. Dadurch ist es möglich, die zu einem bestimmten Zeitpunkt gültigen und in sich konsistenten Daten zu liefern, ohne eventuell gleichzeitig angeforderte Datenänderungen zu blockieren.
DBMS, die MVCC unterstützen, bieten somit häufig einen höheren Durchsatz an Transaktionen, da ein Client nie warten muss. Andererseits wird durch die notwendige Verwaltung mehrerer Versionen der Daten nicht nur ein größeres Datenvolumen erzeugt, auch das Bereinigen nicht mehr benötigter Versionen erfordert einen gewissen Aufwand.
Viele der etablierten DBMS verwenden MVCC entweder als Standardmethode, oder bieten es zumindest als Option an.