Transaktion

Werbung
Transaktion
Huang Zhenhao
FU Shuai

Definiton: 'ununterbrechbare' Folge von DML-/DDL-Befehlen

Eigenschaften: ACID Prinzip
Atomicity: "Alles-oder-Nichts"-Eigenschaft
Consistency: Erhalt der DB-Konsistenz
Isolation: Logischer Einbenutzerbetrieb
Durability: Überleben aller Änderungen trotz beliebiger(erwarteter)
Fehler garantiert (Persistenz)
•
•
•
•
•

•
•
•
Kommandos
BOT = Begin of Transaktion (in SQL implizit)
commit = Transaktion soll erfolgreich beendet werden
abort= Transaktion soll abgebrochen werden
Anomalien

•

•

•

•
Lost Update
zwei parallele Transaktionen ändern den
gleichen Datensatz
Dirty Read
eine Transaktion liest Daten die von einer
anderen Transaktion geschrieben, aber
wieder rückgängig gemacht werden
Non-Repeatable Read
die gleiche Leseoperation innerhalb einer
Transaktion liefert unterschiedliche
Ergebnisse
Phantom Reads
eine Transaktion berechnet einen
Wert basierend auf den aktuellen Daten,
daraufhin werden neue Daten von einer
weiteren Transaktion hinzugefügt und dann
arbeitet die erste Transaktion weiter
basierend auf den vorher ermittelten
Werten
Synchronisation
Korrektheitskriterium
(Ziel):
• logischer Einbenutzerbetrieb, d.h.
Vermeidung aller Mehrbenutzeranomalien
Serialisierbarkeit
•Die
parallele Ausführung einer Menge von n
Transaktionen ist serialisierbar, wenn es eine
serielle Ausführung der selben Transaktionen
gibt, die für einen Ausgangszustand der DB
den gleichen Endzustand der DB wie die
parallele Transaktionsausführung erzielt.
Sperrverfahren

Kompatibiltitätsmatrix:
keine
R
X
R
+
+
-
X
+
-
-
R: Lese- oder Read (R)-Sperren
X: Schreib- oder exclusive (X)-Sperren
"+" bedeutet: Sperre wird gewährt
"-" bedeutet: Sperrkonflikt
Optimierungen
Reduzierung der Beeinträchtigungen:
 hierarchische Sperrverfahren
 reduzierte Konsistenzebene
 Zeitstempel
 Mehrversionen-Ansatz
 Optimistische Synchronisation
Hierarchische Sperren

•
Sperrgranulate: Table Spaces,
Tables, Rows.
Sperrgranulat bestimmt
Parallelität/Aufwand

feines Granulat reduziert
Sperrkonflikte, jedoch sind viele
Sperren anzufordern und zu
verwalten

„Hierarchische Verfahren
erlauben Flexibilität bei Wahl des
Granulates
Konsistenzebenen in SQL



vier Konsistenzebenen (isolation levels)
Durch verschiedene Konsistenzebene können verschiedene
Anomalie zu eliminieren.
Default: Serializable
Zeitstempelverfahren

•
Zeitstempel:
jedes Objekt hat zwei Zeitstempel
1. wann zuletzt gelesen
2. wann zuletzt geschrieben

jede Transaktion hat einen Zeitstempel: wann begonnen

Bei Zugriffswunsch werden die Zeitstempel verglichen nur, wenn
Transaktion jünger ist,
bei Lesewunsch jünger als der Schreibstempel
bei Schreibwunsch jünger als der Schreib- und der Lesestempel darf sie
zugreifen und den Objektstempel entsprechend setzen
•
•
MVCC (Multi Version Concurrency Control)

Snapshot Isolation

Jede Connection entspricht „Snapshot Isolation“ von einem Zeitpunkt,
wann die TA startet, diese ganze TA basiert auf „Snapshot Isolation“.

Bevor das Ergebnis abgegeben wird, vergleichen dieses mit
gegenwärtigem Datenbank
Konflikte
Zurücksetzen

Vorteil:
• kein Leser wartet auf einen Schreibe
• kein Schreiber wartet auf einen Leser

Nachteil:
• Mehr Platzbedarf für neue Versionen
• keine Serialisierbarkeit zu garantieren
Optimistische Synchronisation

Lesephase:
•
Jede TA führt bei Änderungen auf Kopie in Puffer durch, der für andere TA nicht
zugänglich ist.

Validierungsphase:
•
•
Ob die beendigungswillige Transaktion mit paralleler Transaktion in Konflikt steht.
mehr Rücksetzungen als bei Sperrverfahren, aber keine Deadlocks.

Schreibphase:
•
Ausführung nach einer erfolgreichen Validierungsphase.
Herunterladen