Multi-Version Concurrency Control
MVCC hält mehrere Versionen pro Zeile; Lesevorgänge nutzen einen konsistenten Snapshot ohne Sperren und erreichen so hohe Nebenläufigkeit, bei der Lesevorgänge Schreibvorgänge nicht blockieren.
Zweck
Den zentralen Mechanismus hochparalleler Lesezugriffe in modernen Datenbanken (PostgreSQL/Oracle/InnoDB) verstehen.
Mechanismus
Jede Zeile trägt Versionsstempel (xmin/xmax oder Transaktions-IDs). Lesevorgänge wählen die sichtbare Version gemäß dem Transaktions-Snapshot, sperrenfrei. Schreibvorgänge erzeugen eine neue Version und markieren die alte als abgelaufen. Deadlocks und Write Skew erfordern zusätzliche Erkennung.
Anwendungsfälle
- Optimierung hochparalleler Lesezugriffe
- Implementierung der Snapshot-Isolation
- Datenbank-Interna