ScholarGate
Assistent

Isolationsstufen

Isolationsstufen definieren, wie stark eine Transaktion vor den Auswirkungen anderer gleichzeitiger Transaktionen geschützt ist, wobei einige Isolationsgarantien zugunsten einer höheren Parallelität und eines höheren Durchsatzes aufgegeben werden.

Thema finden mit PaperMindDemnächstFind papers & topics
Tools & resources
Folien herunterladen
Learn & explore
VideoDemnächst

Definition

Eine Isolationsstufe ist eine Spezifikation, welche Parallelitätsanomalien eine Transaktion beobachten kann; höhere Stufen verhindern mehr Anomalien (bis zur vollständigen Serialisierbarkeit) auf Kosten einer reduzierten Parallelität, während niedrigere Stufen bestimmte Anomalien im Austausch für Leistung zulassen.

Scope

Dieses Thema behandelt die Standard-Isolationsstufen – Read Uncommitted, Read Committed, Repeatable Read und Serializable – definiert anhand der Phänomene (Dirty Read, Non-Repeatable Read, Phantom), die jede zulässt oder verhindert, die einflussreiche Kritik, die sie im Hinblick auf zugelassene Anomalien neu formulierte, und die praktisch wichtige Snapshot Isolation und ihre Anomalien wie Write Skew. Es behandelt den Kompromiss zwischen Konsistenz und Parallelität. Die zugrunde liegenden Sperr- und Multiversionsmechanismen, die diese Stufen implementieren, werden ausgeschlossen.

Core questions

  • Welche Anomalien – Dirty Read, Non-Repeatable Read, Phantom – lässt jede Isolationsstufe zu?
  • Wie definiert der SQL-Standard die vier Isolationsstufen?
  • Warum kritisierten Forscher die anomaliebasierten Definitionen als mehrdeutig?
  • Wo passt die Snapshot Isolation hinein, und welche Anomalien (wie Write Skew) kann sie zulassen?
  • Wie wählen Anwendungen eine Isolationsstufe für eine gegebene Arbeitslast aus?

Key concepts

  • Read Uncommitted
  • Read Committed
  • Repeatable Read
  • Serializable
  • Dirty Read
  • Non-Repeatable Read
  • Phantom Read
  • Snapshot Isolation und Write Skew

Key theories

Anomaliebasierte Isolationsstufen
Der SQL-Standard definiert Isolationsstufen danach, welche der drei Phänomene – Dirty Reads, Non-Repeatable Reads und Phantoms – sie zulassen, von Read Uncommitted (alle erlaubt) bis Serializable (keines erlaubt).
Kritik an ANSI-Isolationsstufen
Berenson und Kollegen zeigten, dass die phänomenbasierten Definitionen des Standards mehrdeutig sind und Multiversionssysteme nicht sauber charakterisieren. Sie führten die Snapshot Isolation als eine eigenständige, weit verbreitete Stufe ein, die von den ursprünglichen Definitionen nicht erfasst wurde.
Snapshot Isolation und ihre Anomalien
Unter Snapshot Isolation liest jede Transaktion einen konsistenten Snapshot zum Zeitpunkt ihres Starts, was ein starkes Leseverhalten ohne Lesesperren ermöglicht, aber nicht-serialisierbare Anomalien wie Write Skew zulassen kann, was die serialisierbare Snapshot Isolation motiviert.

Clinical relevance

Die Wahl der Isolationsstufe ist eine routinemäßige, aber folgenreiche Konfigurationsentscheidung für Anwendungsentwickler: Die Wahl einer zu schwachen Stufe kann Daten durch subtile Anomalien unbemerkt beschädigen, während die ständige Verwendung von Serializable den Durchsatz drosseln kann. Daher ist das Verständnis der Stufen für korrekte, leistungsfähige Transaktionsanwendungen unerlässlich.

History

Der ANSI/ISO SQL-Standard definierte Isolationsstufen anhand der zulässigen Phänomene. Die Kritik von Berenson, Bernstein, Gray und den O'Neils aus dem Jahr 1995 deckte Unklarheiten in diesen Definitionen auf und charakterisierte die Snapshot Isolation, die von gängigen Multiversionsdatenbanken übernommen wurde. Spätere Arbeiten definierten die serialisierbare Snapshot Isolation, um die verbleibende Anomalielücke zu schließen.

Debates

Definition der Isolation durch Anomalien versus durch Serialisierbarkeit
Die anomaliebasierten Definitionen des Standards sind leicht zu formulieren, aber mehrdeutig und passen nicht zu Multiversionssystemen; eine Alternative ist, die Korrektheit direkt über die Serialisierbarkeit zu definieren, was sauberer ist, aber schwieriger auf die Stufen abzubilden, die Entwickler in der Praxis konfigurieren.

Key figures

  • Jim Gray
  • Philip Bernstein
  • Hal Berenson

Related topics

Seminal works

  • berenson1995
  • gray1992

Frequently asked questions

Was ist der Unterschied zwischen einem Non-Repeatable Read und einem Phantom Read?
Ein Non-Repeatable Read tritt auf, wenn eine Transaktion dieselbe Zeile zweimal liest und unterschiedliche Werte sieht, weil eine andere Transaktion sie dazwischen aktualisiert hat. Ein Phantom Read tritt auf, wenn eine Transaktion eine Abfrage mit einer Suchbedingung erneut ausführt und neue Zeilen sieht, die eine andere Transaktion eingefügt hat. Repeatable Read verhindert Ersteres; nur Serializable verhindert Phantoms zuverlässig.
Ist Snapshot Isolation dasselbe wie Serializable?
Nein. Snapshot Isolation gibt jeder Transaktion einen konsistenten Snapshot und verhindert Dirty und Non-Repeatable Reads, ist aber nicht vollständig serialisierbar: Sie erlaubt Write-Skew-Anomalien, bei denen zwei Transaktionen überlappende Daten lesen und disjunkte Aktualisierungen vornehmen, die zusammen eine Einschränkung verletzen. Serializable Snapshot Isolation erweitert sie, um solche Anomalien zu eliminieren.

Methods for this concept

Related concepts