Realisierung von Transaktionen Betriebliche Informationssysteme Prof. Dr. Michael Löwe Inhalt Zusammenfassung erster Teil Das Arbeiten mit Kopien Einfache Transaktionen Geschachtelte Transaktionen Transaktionen in verteilten Systemen Das Problem Teilausfall Transaktionskoordinator und 2-Phasen-Commit Resümee Realisierung von Transaktionen 2 Transaktionen auf 3 Ebenen Beginn Ganz lange Transition (Workflow) Abschluss Commit, Roll Back Lange Transaktion (Aktivität) Lange Transaktion (Aktivität) Lange Transaktion (Aktivität) Commit, Roll Back Transaktion (Funktion) Transaktion (Funktion) Transaktion (Funktion) Commit, Roll Back DB-Update DB-Update Realisierung von Transaktionen DB-Update 3 Transaktionen auf 3 Ebenen Geschäftsfunktion Transaktion (< 3 Sekunden) Bereitgestellt durch DBMS oder Transaktionsmonitor Erprobte Techniken Aktivität Lange Transaktion (< ein paar Tage) Keine marktgängigen Lösungen verfügbar Re-Implementierung der DBMS- oder TP-Techniken nötig Workflow Ganz lange Transaktion (> ein paar Tage) Keine marktgängigen Lösungen verfügbar Nicht mit den Standardtechniken zu beherrschen Realisierung von Transaktionen 4 Einfache Transaktionen • • • • • • Arbeiten mit Kopien Auto-Roll-Back Replay Restart-Logik Konflikterkennung Auto-Commit Realisierung von Transaktionen 5 Atomicity (Arbeiten mit Kopien) T: 100 DM von K1 auf K2 0 0 200 500 0. Begin Work 1. K1 lesen (200) 2. K1 schreiben (100) 100 3. K2 lesen (500) 600 4. K2 schreiben (600) 5. Commit XX XX 200 500 100 600 Bestätigung: Begin Work: Kopie:= Original Commit: Original:= Kopie Lesen und Schreiben: Auf den Kopien K1‘ K2‘ K1 K2 Realisierung von Transaktionen 6 Atomicity (Arbeiten mit Kopien) T: 100 DM von K1 auf K2 0 0 200 500 200 500 0. Begin Work 1. K1 lesen (200) 2. K1 schreiben (100) 100 3. K2 lesen (500) 600 4. K2 schreiben (600) 5. Roll Back XX XX Abbruch: Begin Work: Kopie:= Original Roll Back: Kopien vernichten Lesen und Schreiben: Auf den Kopien K1‘ K2‘ K1 K2 Realisierung von Transaktionen 7 Atomicity (Arbeiten mit Kopien) T: 100 DM von K1 auf K2 0 0 200 500 200 500 0. Begin Work 1. K1 lesen (200) 2. K1 schreiben (100) 100 3. K2 lesen (500) ERR 4. K2 schreiben (600) 200 500 5. Auto Roll Back 6. (Replay) Erkannter Fehler: Begin Work: Kopie:= Original Auto Roll Back: (Kopie := Original) Lesen und Schreiben: Auf den Kopien K1‘ K2‘ K1 K2 Realisierung von Transaktionen 8 Atomicity (Arbeiten mit Kopien) T: 100 DM von K1 auf K2 0 0 200 500 200 500 0. Begin Work 1. K1 lesen (200) 2. K1 schreiben (100) 100 3. K2 lesen (500) 4. Systemausfall 5. Restart 6. Auto Roll Back 200 500 7. Replay Systemausfall: Begin Work: Kopie:= Original Roll Back: Kopie := Original Lesen und Schreiben: Auf den Kopien K1‘ K2‘ K1 K2 Realisierung von Transaktionen 9 Isolation (Dirty Read) T1: 100 DM von K1 auf K2 T2: 50 DM von K3 auf K2 200 500 300 0. Begin Work 200 500 1. K1 lesen (200) 2. K1 schreiben (100) 100 500 300 0. Begin Work 1. K3 lesen (300) 250 2. K3 schreiben (250) 3. K2 lesen (500) 4. K2 schreiben (600) 600 550 3. K2 lesen (500) 4. K2 schreiben (550) 5. Roll back 200 550 250 5. Commit K1‘ K2‘ K1 K2 K3 K2“ K3“ Realisierung von Transaktionen 10 Isolation (Unrepeatable Read) T1: K2 + K3 zu K1 T2: 50 DM von K3 auf K2 200 500 300 0. Begin Work 1. K1 lesen(200) 2. K2 lesen(500) 200 500 300 500 300 0. Begin Work 1. K3 lesen(300) 250 2. K3 schreiben(250) 3. K2 lesen(500) 550 4. K2 schreiben(550) 5. Commit 3. K3 lesen(300) 4. K1 schreiben(1000) 1000 1000 550 250 5. Commit K1‘ K2‘ K3‘ K1 K2 K3 K2“ K3“ Realisierung von Transaktionen 11 Isolation (Lost Update) T1: 100 DM von K1 auf K2 T2: 50 DM von K3 auf K2 200 500 300 0. Begin Work 200 500 1. K1 lesen (200) 2. K1 schreiben (100) 100 3. K2 lesen (500) 500 300 0. Begin Work 1. K3 lesen (300) 250 2. K3 schreiben (250) 3. K2 lesen (500) 4. K2 schreiben (600) 5. Commit 600 550 4. K2 schreiben (550) 100 600Konflikt 600 300 5. Auto Roll Back 550 250 6. 5. Replay Commit K1‘ K2‘ K1 K2 K3 K2“ K3“ Realisierung von Transaktionen 12 Systemausfall beim Commit Realisierung von Transaktionen 13 Geschachtelte Transaktionen Beginn Ganz lange Transaktion (Workflow) Abschluss Commit, Roll Back Lange Transaktion (Aktivität) Lange Transaktion (Aktivität) Lange Transaktion (Aktivität) Commit, Roll Back Transaktion (Funktion) Transaktion (Funktion) Transaktion (Funktion) Commit, Roll Back DB-Update DB-Update Realisierung von Transaktionen DB-Update 14 „Commit“ in einen Kontext Transaktion T1 Begin Work Commit Roll back Transaktion T2 Kopien von T1 Kopien von T2 T2T1 Kopien von T1 Datenbestand (dauerhaft) Realisierung von Transaktionen 15 Verteilte Transaktionen: Das Problem Vertragsverwaltung (VV): Klient BeitragBH: Klient Vermittler: Klient Beteiligte: Klient RV: Klient Beitrag buchen Provision buchen Zahlungen buchen ........ Text: Klient Text: Klient Text: Klient Text: .... B-Abr. erzeugen P-Abr. erzeugen F-Abr. erzeugen ........ Versand: Server B.-BH: Server V.-BH: Server F.-BH: Server Dokument versenden Aktualisieren Aktualisieren Aktualisieren Beitrag abrechnen VV: Server Bestand aktualisieren Text: Server Aktualisieren Realisierung von Transaktionen 16 Verteilte Transaktionen: Die Lösung Realisierung von Transaktionen 17 Verteilte Transaktionen: Die Lösung Transaktion T1 Abschluss Abschluss Phase 1 Phase 2 Transaktionskoordinator (1) All Try Commit (2) (a) All parts o.k. (3a) All Commit (b) One part not o.k. (3b) All Roll Back T1: Teil 1 Phase 1: Try commit Datenbestand 1 Phase 2: Commit Kopien T1: Teil 2 Phase 1: Try commit Datenbestand 2 Realisierung von Transaktionen Phase 2: Commit Kopien 18 Verhalten bei Ausfällen Realisierung von Transaktionen 19 Übertragung auf Lange Transaktionen Realisierung von Transaktionen 20 Resümee „Normale“(flache) Transaktionen sind beherrscht In nicht verteilten Umgebungen durch DBMS und TP‘s In verteilten Umgebungen durch 2-Phase-Commit Verteilte heterogene Datenbanken oder TP‘s: z. B. XA-Standard Verteilte objektorientierte Anwendungen: z. B. COM+ Transaction Manager oder JAVA Enterprise Beans als Abstraktion von kommerziellen TP‘s Die Konzepte können Vorlage für Realisierung langer Transaktionen und ganz langer Transaktionen sein Keine kommerziellen Lösungen Verschachtelte Transaktionen erforderlich Realisierung langer Transaktionen beim nächsten Mal Realisierung von Transaktionen 21