Zum Inhalt springen
uencoder

Snapshot Isolation

Snapshot Isolation lässt eine Transaktion einen konsistenten Snapshot (Datenversionen zum Transaktionsbeginn) lesen, vermeidet Dirty und Non-Repeatable Reads, erlaubt aber Write Skew.

Zweck

Effiziente Isolation mit hoher Nebenläufigkeit auf MVCC bereitstellen; der Default-Level vieler Datenbanken.

Mechanismus

Zum Transaktionsbeginn wird ein konsistenter Snapshot (sichtbare Versionsstempel) erfasst; Lesevorgänge nehmen keine Sperren. Schreibkonflikterkennung: Schreiben zwei überlappende Transaktionen dieselbe Zeile, wird der spätere Commit abgebrochen. PostgreSQLs REPEATABLE READ ist genau das.

Anwendungsfälle

  • Isolation unter MVCC
  • Optimierung nebenläufiger Lesezugriffe
  • Wahl des Isolationslevels

Verwandte Tools

References