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