rücksetzen
DESCRIPTION
Rücksetzen. Bisher betrachtetes Scheduling gewährleistet Isolation, d.h. Serialisierbarkeit, setzt jedoch voraus, dass Transaktionen abgebrochen und rückgesetzt werden können. - PowerPoint PPT PresentationTRANSCRIPT
Rücksetzen
• Bisher betrachtetes Scheduling gewährleistet Isolation, d.h. Serialisierbarkeit, setzt jedoch voraus, dass Transaktionen abgebrochen und rückgesetzt werden können.
• Jetzt zu betrachten: Rücksetzmechanismen, die gewährleisten, dass nicht erfolgreiche Transaktionen keinerlei Effekte bewirken (Atomizität).
• Mögliche Gründe für Transaktionsabbruch:– Selbstaufgabe (Ausführung von abort-Operation),– Systembedingter Abbruch (z.B. wegen Verklemmung,
Ressourcenmangel, I/O-Fehler),– Systemzusammenbruch mit Verlust des Hauptspeicherinhalts.
Rücksetzbarkeit von Schedules (1)
• Rücksetzen einer Transaktion Ti kann andere Transaktion Tj beeinflussen, die bereits von Ti gelesen hat und deshalb nun ebenfalls rückgesetzt werden muss.
• Zur Erinnerung: Konfliktserialisierbarer (fast serieller) Schedule
S4: r2(B) r2(T) w2(T) w2(B) r1(B) r1(T) a2 c1.
• CP(S4): Nur T1! Da aber T1 Wert B (und T) von T2 gelesen hat (dirty read), kann Atomizität von T1 nur durch Rücksetzen von T1 erreicht werden.
• Vorgang ist als kaskadierendes Rücksetzen bekannt — unerwünscht, da Arbeit von T1 verloren geht.
Rücksetzbarkeit von Schedules (2)
• Betrachte konfliktserialisierbaren (fast seriellen) Schedule S10: r3(T) w3(T) r3(B) w3(B) r2(B) r2(T) w2(T) w2(B) c2 c3.• Rücksetzen von T3 fatal, da wegen dirty read auch T2
rückzusetzen wäre, dies aber die Dauerhaftigkeit von T2 verletzen würde.
• Folgerung: Für Zwecke der Rücksetzbarkeit muss Menge der zulässigen Schedules über Serialisierbarkeit hinaus eingeschränkt werden.
a3
• Zum Vergleich: Kaskadierendes Rücksetzen S10: r3(T) w3(T) r3(B) w3(B) r2(B) r2(T) w2(T) w2(B) c3 c2. a3
Rücksetzbarkeit von Schedules (3)• Definition: Sei S Schedule.
– S heißt rücksetzbar (wiederanlaufbar), wenn für alle Transaktionen Ti, Tj mit i j gilt: wenn Tj irgendein Datenelement x von Ti liest und S den Aufruf cj enthält, dann enthält S auch ci, und ci erfolgt vor cj.
– S vermeidet kaskadierendes Rücksetzen, wenn für alle Transaktionen Ti, Tj mit i j gilt: wenn Tj irgendein Datenelement x von Ti liest, dann erfolgt zwischen wi(x) und rj(x) ein Aufruf von ci. Zur Erinnerung: S heißt rigoros, wenn für alle
Transaktionen Ti, Tj in CP(S) mit i j gilt: wenn oi(x) vor oj(x) in S und oi(x) unverträglich mit oj(x), dann erfolgt ci vor oj(x).
Rigorose Schedules vermeiden kaskadierendes Rücksetzen und sind konfliktserialisierbar.
S2PL löst Isolation und Atomizität.
Transaktionszustände
potentiell aktiv blockiert
geschei-tert
abge-schlossen
wieder-holbar
auf-gegeben
wieder-anlaufbar
inkarnieren
neustarten
undo undo
abbrechen
abbrechen abbrechen
einbringen
verdrängen
beenden
festschreiben