Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
teknopedia

teknopedia

teknopedia

teknopedia

teknopedia
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Multiversion Concurrency Control – Wikipedia
Multiversion Concurrency Control – Wikipedia
aus Wikipedia, der freien Enzyklopädie

Multiversion Concurrency Control (MVCC, MCC, multi-generational concurrency control) ist ein Verfahren aus der Datenbanktechnik, das dazu dient, konkurrierende Zugriffe auf eine Datenbank möglichst effizient auszuführen, ohne zu blockieren oder die Konsistenz der Datenbank zu gefährden.

Dabei wird sichergestellt, dass lesende Zugriffe nie auf Schreibvorgänge in Datenbankobjekten warten müssen. Zu diesem Zweck werden intern verschiedene Versionen eines Objektes gehalten, die z. B. durch Zeitstempel oder fortlaufend erhöhte Transaktionsnummern voneinander unterschieden werden. Jede Objektversion hat dann einen Zeitstempel vom Zeitpunkt ihres Schreibens durch eine beliebige Transaktion Tbel, auf diese Weise kann Transaktion Ti die jeweils aktuelle Version des Objektes lesen, deren Zeitstempel kleiner ist als TS(Ti), d. h., die von der Transaktion

T j  mit  j = maxarg ∀ bel { TS ( T bel ) : TS ( T bel ) < TS ( T i ) } {\displaystyle {\text{T}}_{\text{j}}{\text{ mit }}j={\underset {\forall \,{\text{bel}}}{\text{maxarg}}}\left\{{\text{TS}}\left(T_{\text{bel}}\right):{\text{TS}}\left(T_{\text{bel}}\right)<{\text{TS}}\left(T_{i}\right)\right\}} {\displaystyle {\text{T}}_{\text{j}}{\text{ mit }}j={\underset {\forall \,{\text{bel}}}{\text{maxarg}}}\left\{{\text{TS}}\left(T_{\text{bel}}\right):{\text{TS}}\left(T_{\text{bel}}\right)<{\text{TS}}\left(T_{i}\right)\right\}}

geschrieben wurde.

Jedes Objekt P besitzt ebenso einen Lese-Zeitstempel RTS(P) (read timestamp), der den Startzeitstempel TS(Tneu) derjenigen Transaktion Tneu angibt, die P zuletzt gelesen hat. Wenn Ti dieses Objekt P ändert und TS(Ti) < RTS(P)=TS(Tneu) gilt, dann wird die Transaktion Ti abgebrochen und neu gestartet. Andernfalls erstellt Ti eine neue Version von P und setzt den Lese-Schreib-Zeitstempel von P auf TS(Ti).

MVCC ist klar abzugrenzen vom Isolationslevel Read Uncommitted, welches ebenfalls sicherstellt, dass lesende Zugriffe nie auf Schreibvorgänge warten müssen. Im Gegensatz zu Read Uncommitted gewährleistet MVCC jedoch immer eine konsistente Sicht auf die Daten. Die Verwendung von MVCC schließt das Isolationslevel Read Uncommitted somit grundsätzlich aus, da keine Dirty Reads mehr möglich sind.

Der Nachteil dieses Systems sind die Kosten, um viele verschiedene Versionen eines Objekts in der Datenbank zu halten. Auf der anderen Seite werden lesende Zugriffe nie blockiert, was sehr wichtig bei ausgelasteten Datenbanken sein kann, in denen sehr häufig nur gelesen wird.

Datenbanken mit MVCC

[Bearbeiten | Quelltext bearbeiten]

Viele der heute erhältlichen Datenbanksysteme implementieren diese Technik:

  • ArangoDB[1]
  • Berkeley DB[2]
  • CouchDB[3]
  • CortexDB
  • Elasticsearch
  • Firebird (Datenbank)[4]
  • FLAIM
  • GraphDB (sones GmbH)[5]
  • H2 Database Engine (experimentell ab Version 1.0.57 (25. August 2007))[6]
  • InterBase (alle Versionen)[7]
  • Microsoft SQL Server (ab SQL Server 2005, allerdings verwenden ältere Versionen u. a. row-level-locking)
  • MySQL, wenn man die InnoDB[8] oder Falcon[9] storage engine verwendet.
  • ObjectStore (nur im Lesemodus)[10]
  • Oracle[11]
  • OrientDB
  • PostgreSQL[12] und PostgreSQL Derivate wie Netezza
  • SAP HANA
  • ThinkSQL
  • Zope Object Database

Siehe auch

[Bearbeiten | Quelltext bearbeiten]
  • Transaktionaler Speicher
  • Zeitstempelverfahren
  • ACID

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. ↑ ArangoDB GmbH: Basics and Terminology · ArangoDB v3.2.9 Documentation. Archiviert vom Original am 13. Dezember 2017; abgerufen am 9. Juli 2025 (englisch). 
  2. ↑ Berkeley DB Reference Guide: Degrees of Isolation (Memento des Originals vom 27. Juni 2007 im Internet Archive)  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/oracle.com
  3. ↑ Eventual Consistency. Abgerufen am 9. Juli 2025. 
  4. ↑ White paper by Roman Rokytskyy Firebird and Multi Version Concurrency Control (Memento des Originals vom 9. Juni 2007 im Internet Archive)  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/firebirdsql.org
  5. ↑ sones/GraphDB at master · sones/sones. Abgerufen am 9. Juli 2025 (englisch). 
  6. ↑ Advanced. Abgerufen am 9. Juli 2025. 
  7. ↑ Bill Todd: InterBase: What Sets It Apart. 2000, archiviert vom Original (nicht mehr online verfügbar) am 26. Februar 2006; abgerufen am 19. September 2020.  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage: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@1@2Vorlage:Toter Link/mysql.org (Seite nicht mehr abrufbar, festgestellt im Mai 2019. Suche in Webarchiven)  Info: Der Link wurde automatisch als defekt markiert. Bitte prüfe den Link gemäß Anleitung und entferne dann diesen Hinweis.
  10. ↑ ObjectStore Advanced C++ User’s Guide, chapter two (Memento des Originals vom 23. August 2007 im Internet Archive)  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/progress.com
  11. ↑ Oracle Database Concepts, Chapter 9 Data Concurrency and Consistency docs.oracle.com Multiversion Read Consistency
  12. ↑ Concurrency Control. 7. Februar 2013, abgerufen am 9. Juli 2025 (englisch). 
Abgerufen von „https://de.teknopedia.teknokrat.ac.id/w/index.php?title=Multiversion_Concurrency_Control&oldid=257743775“
Kategorie:
  • Datenbanken
Versteckte Kategorien:
  • Wikipedia:Defekte Weblinks/Ungeprüfte Archivlinks 2019-05
  • Wikipedia:Weblink offline IABot
  • Wikipedia:Defekte Weblinks/Ungeprüfte Botmarkierungen 2019-05

  • indonesia
  • Polski
  • العربية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصرى
  • Nederlands
  • 日本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українська
  • Tiếng Việt
  • Winaray
  • 中文
  • Русский
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id