Transaktionen 2

Werbung
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
Herunterladen