Universität Karlsruhe (TH) © 2007 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 12 Chapter 12 Long Transactions.

Slides:



Advertisements
Ähnliche Präsentationen
Kapitel 15 Verteilte Datenbanken
Advertisements

8. Termin Teil B: Wiederholung Begriffe Baum
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
Rekursion: Rekurrenz: Algorithmen rufen sich selbst (rekursiv) auf.
Falls Algorithmen sich selbst rekursiv aufrufen, so kann ihr Laufzeitverhalten bzw. ihr Speicherplatzbedarf in der Regel durch eine Rekursionsformel (recurrence,
Algebraische Zahlen: Exaktes Rechnen mit Wurzeln
Rücksetzen Bisher betrachtetes Scheduling gewährleistet Isolation, d.h. Serialisierbarkeit, setzt jedoch voraus, dass Transaktionen abgebrochen und rückgesetzt.
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Folien 2-5, 7-8 © Prof. Dr. Manfred Rössle (FH Aalen)
PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.
Übung 6.6Schranken 1.Angenommen, Ihr Algorithmus habe einen Aufwand von g(n) = 5n 3 + n für alle n a)Geben sie eine obere Schranke O(g(n)) an. b)Beweisen.
Vs61 6 Verteilte Datenverwaltung. vs62 Ziel:Zusammengehöriger Datenbestand soll über mehrere Stationen verteilt werden, z.B. Fragmentierung: in mehrere.
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
HEINZ NIXDORF INSTITUT Universität Paderborn Fachbereich Mathematik/Informatik Algorithmische Probleme in Funknetzwerken X Christian Schindelhauer
Objektrelationales Mapping mit JPA Working with Persistent Objects Jonas Bandi Simon Martinelli.
On a Buzzword: Hierachical Structure David Parnas.
Prof. Dr. S. Albers Prof. Dr. Th. Ottmann
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Transaktionen in verteilten Datenbanken
Vererbung Spezialisierung von Klassen in JAVA möglich durch
Datenbanksysteme für FÜ SS 2000 Seite Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz Isolation.
EDV Parallelprogrammierung1 Parallelprogrammierung mit JAVA.
Kapitel 14: Recovery Oliver Vornberger
1 Kapitel 12: Transaktionsverwaltung Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück Osnabrück
1 Kapitel 12: Transaktionsverwaltung. 2 Transaktion Bündelung mehrerer Datenbankoperationen Mehrbenutzersynchronisation Recovery.
15.1 Synchronisation nebenläufiger Prozesse
Erhard Künzel für Info 9. Klasse: Digitale Schule Bayern© Erhard Künzel.
Universität Karlsruhe (TH) © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 0 Transaktionsverwaltung Einführung.
Einige Begriffe zum Anfang.... Transaktionsprozedur: Folge primitiver Operationen als Einheit der Konsistenz und der Robustheit. Transaktion (TA): Ausführung.
Transaktion 1Transaktion 2... Transaktion n Synchronisation durch Scheduler Datenbasis-Verwalter lokaler Schedule 1lokaler Schedule n konfliktserialisierbarer.
Recovery AIFB SS (1/8) Sicherungspunkte (Checkpoints) (1/8) (1) Transaktions-Orientierte Sicherungspunkte Transaction-Oriented Checkpoint.
Ausführungsmodell Zustandsübergang einer Transaktion aus Nutzersicht:
Modellierung von Transaktionen Zur Formalisierung der ACID-Garantien muss Verhalten von Transaktionen modelliert werden. Folge aus der Forderung nach lokaler.
Synchronisation paralleler Transaktionen AIFB SS Konzept der Transaktion 4.2 Konzept der Transaktion (1/4) Eine Transaktion ist ein in sich geschlossener,
© Gabriele Sowada © Gabriele Sowada 2 Manuell Beispiel 1 demonstriert die Vorgehensweise bei der manuellen Programm- Eingabe am.
Neue variable Lernkontrollen mit Diagnose und Förderplanung
Die Geschichte von Rudi
Materialien zum Informatikunterricht (Pohlig-Häberle)
1 Fachtagung am Seniorenorientiertes Design und Marketing ThyssenKrupp Immobilien Design for all - Anpassungen im Wohnungsbestand 1.Demographie.
Montag den 16.Dezember Lernziel: To begin stage 2 of preparation for speaking assessment.
Effiziente Algorithmen
WS 2012/13 Datenbanksysteme Mi 15:15 – 16:45 R Vorlesung #11 Transaktionsverwaltung.
WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R Vorlesung #10 Transaktionsverwaltung.
Analyse von Ablaufdiagrammen
Festschreibe-Protokoll (1) Globales Zwei-Phasen-Festschreibe-Protokoll (2- Phasen-Commit, 2PC): Phase 1: –Koordinator benachrichtigt Ressourcen, dass Commit.
Transaktion Huang Zhenhao FU Shuai.
Analyseprodukte numerischer Modelle
ADAT©2004,2006 Dipl. - Ing. Walter SabinSeite: 48 Version 1.0a Recovery Wiederherstellung eines konsistenten Datenbankzustandes nach Fehlersituationen.
Lokales 2-Phasen-Festschreibe- Protokoll Segment-Verwalter führt commit(T i ) in zwei Phasen aus: Phase 1: Sicherstellung der Wiederholbarkeit. –Für jedes.
Arne Vater Wintersemester 2006/ Vorlesung
Transaktionen Dr. Heidrun Bethge Datenbanken II.
Data Mining Spectral Clustering Junli Zhu SS 2005.
Transaktionsverwaltung
Guten Morgen oder Guten Tag, Deutsch II! Dieses Jahr werde ich viel mehr Deutsch sprechen. So, passt auf und hört zu! Ich habe Klassinformation dass ihr.
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
Synchronisation paralleler Transaktionen  AIFB SS Sperrverfahren Sperrverfahren (13/18) Behandlung von Konflikten bei der Sperrvergabe.
Lust auf Lesen Treffpunkt Deutsch Sixth Edition. Relative Pronoun object of a preposition Recall from chapter 9 that relative clauses describe people,
Mein Arbeitspraktikum. Today we are learning to talk about work experience we have done, giving facts, details and opinions The bigger picture: We are.
Synchronization: Multiversion Concurrency Control
Recovery    AIFB SS (1/6) Durchführung der Recovery-Maßnahmen(1/6) Transaktions-Fehler (TF) T1 T2 T3 Zeitt Transaktion T2 wird vom.
Vs51 5 Verteilte Datenverwaltung. vs52 Situation:Zusammengehöriger Datenbestand ist über mehrere Stationen verteilt, z.B. Fragmentierung: in mehrere Fragmente.
Vs Verteilte Transaktionen Situation:Fragmentierung: Ein Datenbestand ist über mehrere Stationen verteilt (z.B. verteilte Datenbank, verteiltes Dateisystem,...)
6.3 Verteilte Transaktionen
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
Schreiben Sie fünf Sätze aus diesen Elementen. [Beispiel
COMMANDS imperative 1. you (formal): Sie 2. you (familiar plural): ihr
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 2 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
6.3 Verteilte Transaktionen
 Präsentation transkript:

Universität Karlsruhe (TH) © 2007 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 12 Chapter 12 Long Transactions

2 © 2007 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 12 Special problems Three broad application classes where long transactions occur: Data analysis and maintenance tasks for conventional databases (example of maintenance: index reconstruction) more efficient recovery needed in case of failure. Workflow systems with humans in the loop execution times become unpredictable, exclusive locks impede collaborative progress. Design systems exclusive lock for objects checked out impedes concurrent, collaborative progress; efficient recovery needed.

3 © 2007 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 12 Efficient recovery

4 © 2007 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 12 Motivation Outside appearance: ACID Internal structure: Finer-grained recovery. Parallelism. Approach: Organize long transaction as a tree of subtransactions. Closed nested transaction

5 © 2007 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 12 Beispiel (1) Buchung einer Reise: Hierzu seien z.B. die Buchung unterschiedlicher Flugabschnitte, eines Hotels und eines Mietwagens notwendig. T 12 Flu g Hotel Mietwagen Flug AFlug B T1T1 T 11 T 111 T 112 T 13 Konventioneller TM: Es muss die gesamte Transaktion zurückgesetzt werden Sinnvoller wäre es, lediglich die Mietwagenbuchung (evtl. modifiziert) zu wiederholen.

6 © 2007 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 12 T 12 Flu g Hotel Mietwagen Flug AFlug B T1T1 T 11 T 111 T 112 T 13 Beispiel (2) Lösung: Die Teilaktivitäten werden als eigene Subtransaktionen betrachtet. Es entsteht ein Transaktionsbaum. Subtransaktionen Anwendungstransaktion, Wurzeltransaktion

7 © 2007 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 12 Vorgehen Ziel: Weitgehende Verwendung des konventionellen TM. Aufgabe: Bestimme notwendige Erweiterungen.

8 © 2007 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 12 Recovery (1) Differenziertere Recovery: Schrittweises, hierarchisches Vorgehen soll sich widerspiegeln. Blatt-Transaktionen sind ACID. Zusammenhänge zwischen Transaktionen entlang eines Pfades: Fehlschlag einer Subtransaktion Störung, aber Fehlschlag der Vatertransaktion nicht zwingend. Vatertransaktion bestimmt Stelle in ihrer Ausführung, ab der Fortführung möglich ist. Störung in der Vatertransaktion Fehlschläge aller Subtransaktionen ab einer von der Vatertransaktion zu bestimmenden Stelle. Fehlschlag der Vatertransaktion Fehlschlag aller bereits ausgeführten Subtransaktionen.

9 © 2007 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 12 Recovery (2) Differenziertere Recovery: Schrittweises, hierarchisches Vorgehen soll sich widerspiegeln. Blatt-Transaktionen sind ACID. Zusammenhänge zwischen Transaktionen entlang eines Pfades: Fehlschlag einer Subtransaktion Störung, aber Fehlschlag der Vatertransaktion nicht zwingend. Vatertransaktion bestimmt Stelle in ihrer Ausführung, ab der Fortführung möglich ist. Störung in der Vatertransaktion Fehlschläge aller Subtransaktionen ab einer von der Vatertransaktion zu bestimmenden Stelle. Fehlschlag der Vatertransaktion Fehlschlag aller bereits ausgeführten Subtransaktionen. konventioneller TM 1.Jede Subtransaktion bildet eine eigene Commit-Sphäre: Sie gibt Änderungen an ihrem Transaktionsende, d.h. vor der Beendigung der umgebenden Transaktion, frei. 2. Fehlschlag einer Subtransaktion: Zurücksetzen. 3.Bei Fehlschlag der umgebenden Transaktion kein Rücksetzen möglich (Subtransaktion ist abgeschlossen!), stattdessen Aufruf von Kompensationstransaktionen.

10 © 2007 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 12 Nebenläufigkeit (1) Nebenläufigkeit innerhalb der Transaktion: Subtransaktionen innerhalb einer Anwendungstransaktion lassen sich parallel bearbeiten (Intratransaktions- Parallelität). Im Beispiel könnte etwa die Hotel- und die Mietwagenbuchung u.U. gleichzeitig geschehen. Es gilt unverändert die Konfliktregelung: Serialisierbarkeit innerhalb der Anwendungstransaktion Sperrenfreigabe nach außen erst am Ende der Anwendungstransaktion

11 © 2007 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 12 Nebenläufigkeit (2) Annahme: Verwendung des 2PL-Protokolls. Folge: Jede Subtransaktion gibt ihre Sperren beim Abschluss frei. Aber: Vatertransaktion ist noch nicht abgeschlossen, darf Sperren noch nicht freigeben. Lösung: Bei Beendigung einer Subtransaktion werden die Sperren an die Vatertransaktion vererbt. Damit wird die Lebensdauer der Sperren bis zum Ende der Anwendungstransaktion zugesichert. Zusätzliche Regel: Sperranforderungen einer Subtransaktion sind mit den gehaltenen Sperren ihrer Vorfahren (nicht jedoch mit denen ihrer möglicherweise parallelen Geschwister) verträglich.

12 © 2007 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 12 Nebenläufigkeit (3) Ergebnis: Maximale Nebenläufigkeit unter der Einschränkung, dass Subtransaktionen derselben Vatertransaktion nur nacheinander auf dasselbe Objekt zugreifen. Beispiel: Alle Blatt-Transaktionen schreiben dasselbe Objekt x. T1T1 T 11 T 13 T 12 T 112 T 111 Begin/end transaction Sperranforderung Warten auf Sperre Halten einer Sperre

13 © 2007 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 12 Nebenläufigkeit (4) Begin/end transaction Sperranforderung Warten auf Sperre Halten einer Sperre x T1T1 T 11 T 13 T 12 T 112 T 111 y z z y x x x Ergebnis: Maximale Nebenläufigkeit unter der Einschränkung, dass Subtransaktionen derselben Vatertransaktion nur nacheinander auf dasselbe Objekt zugreifen. Beispiel: T 11 schreibt Objekt x, T 12 Objekt y und T 13 Objekt z.

14 © 2007 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 12 Rücksetzpunkte (1) Kompensationstransaktionen: Wegen vollständiger Isolation aller Subtransaktionen und der Wurzeltransaktion ist die einfachste Lösung das Rücksetzen auf den Beginn der Transaktion. Damit ist einheitliche Behandlung von Kompensation und Rücksetzen (fehlgeschlagener Transaktionen) möglich. Regel: Bei geschlossen geschachtelten Transaktionen stellt der Beginn jeder Subtransaktion (sowie der Beginn der Wurzeltransaktion) einen Rücksetzpunkt dar.

15 © 2007 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 12 Rücksetzpunkte (2) T 12 Flu g Hotel Mietwagen Flug AFlug B T1T1 T 11 T 111 T 112 T 13 Scheitert die Buchung von Flug B, so muss u.U. auch die Buchung von Flug A zurückgenommen werden. Ein geeigneter Rücksetzpunkt ist dann der Beginn von Transaktion T 11. Soll der Effekt von Transaktion T 111 hingegen aufrechterhalten werden, so ist der Beginn von T 112 und damit das Ende von T 111 der geeignete Rücksetzpunkt.

16 © 2007 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 12 Rücksetzpunkte (3) Vorgehen: Für jedes von einer Subtransaktion veränderte Objekt wird ein Before-Image angelegt. Beim commit einer Subtransaktion werden diese Before- Images an die Vatertransaktion vererbt. Die (ererbten) Before-Images (evtl. mehrere!) einer (Vater-) Transaktion müssen so lange gehalten werden, bis die (Vater-)Transaktion beendet ist. Grund: Welcher von i.d.R. mehreren möglichen Rücksetzpunkten gewählt wird, ist abhängig von der Anwendungssemantik.

17 © 2007 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 12 Rücksetzpunkte (4) T1T1 T 11 T 13 T 12 T 112 T 111 All Subtransaktionen T 111, T 112, T 12 und T 13 schreiben das Objekt x. Jeweilige Before-Images: x 111, x 112, x 12 und x 13.

18 © 2007 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 12 Controlled interaction

19 © 2007 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 12 Motivation Usually, design activities are a collaborative effort with well- defined points of interaction. Isolation can then only be maintained over parts of a transaction. Also permits higher degree of internal parallelism. Threatens global and local consistency. Complicates recovery. Several known approaches that differ in how well they are suited to different application scenarios. We study two general approaches: Open nested transactions. Sagas.

20 © 2007 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 12 Example not enough Corporate approval Write check Assistant approval Create travel report Reserve money Dept. Autho- rization Start available deny Abort approve Abort Complete approve deny give to assistant deny Abort approve Abort A4A4 A2A2 A5A5 A6A6 A1A1 A3A3 Traveler requests expense reimbursement (USD 1000,--) from Account A123. Conventional locking: Lock for A123 may be held for days, blocking everything else. But: No concurrency control overdraft.

21 © 2007 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 12 T 12 Flu g Hotel Mietwagen Flug AFlug B T1T1 T 11 T 111 T 112 T 13 Geschachtelte Transaktionen Lösung: Unverändert: Transaktionsbaum. Subtransaktionen Anwendungstransaktion, Wurzeltransaktion

22 © 2007 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 12 Isolation / Nebenläufigkeit (1) Nebenläufigkeit innerhalb der Transaktion: Subtransaktionen innerhalb einer Anwendungstransaktion lassen sich parallel bearbeiten (Intratransaktions- Parallelität). Es gilt unverändert die Konfliktregelung: Serialisierbarkeit innerhalb der Anwendungstransaktion Sperrenfreigabe nach außen erst am Ende der Anwendungstransaktion Keine Isolation über Blatt-Transaktionen hinaus. Keine Isolation der Gesamttransaktion Reduzierte Konsistenz und Isolation schon innerhalb der Transaktion Hohe Nebenläufigkeit über alle Transaktionen

23 © 2007 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 12 Recovery Differenziertere Recovery: Schrittweises, hierarchisches Vorgehen soll sich widerspiegeln. Blatt-Transaktionen sind ACID. Zusammenhänge zwischen Transaktionen entlang eines Pfades: Fehlschlag einer Subtransaktion Störung, aber Fehlschlag der Vatertransaktion nicht zwingend. Vatertransaktion bestimmt Stelle in ihrer Ausführung, ab der Fortführung möglich ist. Störung in der Vatertransaktion Fehlschläge aller Subtransaktionen ab einer von der Vatertransaktion zu bestimmenden Stelle. Fehlschlag der Vatertransaktion Fehlschlag aller bereits ausgeführten Subtransaktionen. Wirkung kann bereits sichtbar sein falls nicht Blatt! Wirkung des gestörten oder fehlgeschlagenen Teils können bereits sichtbar sein!

24 © 2007 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 12 Summary Outside appearance: ACID Open nested transaction XX

25 © 2007 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 12 Beispiel (1) T 12 Flu g Hotel Mietwagen Flug AFlug B T1T1 T 11 T 111 T 112 T 13

26 © 2007 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 12 Beispiel (2) Angenommen Transaktion T 1 buche einen Platz in Flug A. Dieser sei damit ausgebucht. Sie buche dann Flug B. Die parallel ablaufende Transaktion T 2 versuche ebenfalls einen Platz in Flug A zu buchen. Dieser erscheint jedoch ausgebucht. T 2 kommt also nicht weiter. Wird jetzt allerdings T 1 zurückgesetzt, so stellt sich im Nachhinein heraus, dass Flug A doch nicht ausgebucht gewesen wäre. Fazit: Die Serialisierbarkeit der Transaktionen T 1 und T 2 ist also nicht gewährleistet. Der Ablauf der einzelnen Blatt- Transaktionen ist zwar serialisierbar, nicht aber der Ablauf der Wurzeltransaktionen T 1 und T 2.

27 © 2007 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 12 Isolation / Nebenläufigkeit (2) Lösungen: Subtransaktionen sollten statt der vollständigen Sperrfreigabe Sperren mit einer differenzierteren Bedeutung setzen, um die Isolation wieder zu gewährleisten (semantische Concurrency-Control) und trotzdem die Inter-Transaktions-Parallelität nicht unnötig einzuschränken. Kompensationstransaktionen setzen nicht mehr einfach zurück. Kooperation durch semantische Konfliktrelationen Kooperation durch globale Informierung

28 © 2007 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 12 Vergleich Geschlossen geschachtelte Transaktionen garantieren Isolation, verhindern somit Erhöhung der Intertransaktionsparallelität, haben alle ACID- Eigenschaften, bieten aber intern differenzierte Rücksetzmöglichkeiten. Offen geschachtelte Transaktionen bieten intern differenzierte Rücksetzmöglichkeiten, schränken die Isolation und damit die Serialisierbarkeit zu Gunsten einer Kooperation ein, bieten eine Grundlage für unterschiedliche Kooperationsmodelle, stellen hohe und situationsabhängige Ansprüche an semantische Sperren oder Kompensationstransaktionen. Systematisches Vorgehen für Kompensationstransaktionen durch einfacheres Modell Sagas

29 © 2007 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 12 Sagas (1) Saga: Anwendungstransaktion s i bestehend aus einer linearen Folge von Subtransaktionen t ij : Die Subtransaktionen besitzen ACID-Eigenschaften. Finalzustände der t ij werden nicht nur innerhalb s i, sondern auch den t kl, k i, sichtbar. Die Anwendungstransaktion besitzt keine ACID- Eigenschaften. Folge für Recovery: Atomizität bleibt erhalten: Saga s i wird bei Fehlschlag einer t ij in ihrer Gesamtheit zurückgesetzt. Dabei wird t ij wie üblich zurückgesetzt. Die früheren Subtransaktionen bedürfen eines differenzierteren Rücksetzens, da ihr Ergebnisse sichtbar waren.

30 © 2007 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 12 Sagas (2) Lösung: Jede Subtransaktion t ij wird mit einer Kompensationstransaktion c ij ausgestattet (Best effort). Über die c ij werden keine Annahmen gemacht. Insbesondere wird also nicht garantiert, dass der Zustand zu Beginn von t ij wiederhergestellt wird. Bei Rücksetzen werden die c ij in umgekehrter Reihenfolge der t ij ausgeführt. Sei s = ((t 1,c 1 ),…,(t n,c n )). Dann wird entweder die Folge t 1,t 2,…,t n oder die Folge t 1,t 2,…,t j,c j,…,c 2,c 1 (0 j < n ) ausgeführt.

31 © 2007 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 12 Scheduling Saga-Verwalter (SM) Notiere begin-saga in SM-Log Für jede Untertransaktion t j, notiere Ausführung in SM-Log und reiche t j weiter an Transaktions-Verwalter (TM). Falls Abort-Meldung vom TM, schreibe abort-saga in SM- Log und beende normale Ausführung. Sonst vermerke erfolgreichen Abschluss von t j. Bei erfolgreichem Ende notiere end-saga in SM-Log. Transaktions-Verwalter (TM) Menge der t ij für eine Menge von Sagas s i bilden wieder eine Historie wie gewohnt. TM arbeitet konventionell wie bisher beschrieben. Führt insbesondere sein eigenes TM-Log.

32 © 2007 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 12 Rücksetzen TM melde Abort von t j : TM hat bereits t j konventionell zurückgesetzt. Daher anschließend schrittweise Anweisung an TM zur Durchführung von c j-1,…,c 2,c 1 als konventionelle Transaktionen mit entsprechendem Notieren in SM-Log. Problem: Falls eine der c i einen Fehler aufweist, kann die Saga nicht abgeschlossen werden. Erfordert besondere Zusatzmaßnahmen.

33 © 2007 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 12 Restart (1) Backward Recovery: 1.TM führt seine (konventionelle) Recovery durch. 2.SM inspiziert die Einträge im SM-Log (a)Es existiert zu begin-saga ein end-saga: Keine Aktion. (b)Es existiert zu begin-saga ein abort-saga: Sei c j die Kompensationstransaktion, die vom TM noch nicht als beendet gemeldet war. Dann schrittweise Anweisung an TM zur Durchführung von c j,…,c 2,c 1. (c)Andernfalls: Letzte im SM-Log vermerkte Untertransaktion t j war an TM gegangen. Falls noch nicht als abgeschlossen vermerkt, wurde t j von TM zurückgesetzt, an den TM sind der Reihe nach c j-1,…,c 2,c 1 zu senden. Falls als abgeschlossen vermerkt, gehen c j,…,c 2,c 1 an TM.

34 © 2007 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 12 Restart (2) Backward/Forward Recovery: Abwandlung à la geschachtelte Transaktionen für den Fall 2.(c) (weder end-saga noch abort-saga). Es gibt es keinen eigentlichen Grund zum Rücksetzen (eingeschränkte Isolation und Atomizität!), man könnte die Saga auch fortsetzen. Erforderlich: Savepoints zwischen einigen oder allen der t ij. Sei s = t 1,t 2,t 3,t 4,…,t n und das System während der Ausführung von t 4 abgestürzt. Existiere Savepoint zwischen t 2 und t 3. Dann Restart-Abfolge (über das SM-Log sicherzustellen): c 3, restore-savepoint,t 3,t 4,…,t n

35 © 2007 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 12 Sagas (3) not enough Corporate approval Write check Assistant approval Create travel report Reserve money Dept. Autho- rization Start available deny Abort approve Abort Complete approve deny give to assistant deny Abort approve Abort A4A4 A2A2 A5A5 A6A6 A1A1 A3A3 Generalization to graphs is possible:

36 © 2007 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 12 Compensation not enough Corporate approval Write check Assistant approval Create travel report Reserve money Dept. Autho- rization Start available deny Abort approve Abort Complete approve deny give to assistant deny Abort approve Abort A4A4 A2A2 A5A5 A6A6 A1A1 A3A3 How would one compensate for a real-world action? Account balance is USD 2000,--. Saga s 1 : Adds USD 1000,-- to account. Saga s 2 : Deletes USD 2500,-- from account. Rollback of s 1 : Account goes negative. Compensation should know of s 2.