Transaktion
description
Transcript of Transaktion
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 gl
eichen Datensatz
Dirty Read• eine Transaktion liest Daten die von einer a
nderen Transaktion geschrieben, aber wieder rückgängig gemacht werden
Non-Repeatable Read• die gleiche Leseoperation innerhalb einer T
ransaktion liefert unterschiedliche Ergebnisse
Phantom Reads • eine Transaktion berechnet einen We
rt 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)-SperrenX: Schreib- oder exclusive (X)-Sperren"+" bedeutet: Sperre wird gewährt"-" bedeutet: Sperrkonflikt
Optimierungen
Reduzierung der Beeinträchtigungen:hierarchische Sperrverfahrenreduzierte KonsistenzebeneZeitstempelMehrversionen-AnsatzOptimistische 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.