Zum Inhalt springen
uencoder

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

Verwandte Tools

References