rücksetzen

5
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.

Upload: colby

Post on 21-Jan-2016

32 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Page 1: Rücksetzen

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.

Page 2: Rücksetzen

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.

Page 3: Rücksetzen

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

Page 4: Rücksetzen

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.

Page 5: Rücksetzen

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