Transaktionen in verteilten Datenbanken

Werbung
Transaktionen in verteilten
Datenbanken
Torsten Junge / 96I
[email protected]
Übersicht
•
•
•
•
•
•
Woher kommen Transaktionen?
Anforderungen an Transaktionen
Struktur verteilter Transaktionen
X/Open Standard
Two Phase Commit Protokoll
Crash Recovery
Transaktionen in
verteilten DB
2
Woher kommen Transaktionen?
• „Closed Shop“ Betrieb:
– Programmabarbeitung im reinen Batch-Betrieb,
d.h.:
– Programme wurden eingereicht und sequentiell
abgearbeitet
– kein direkter Benutzerzugang
– Informationen über Prg.-Ablauf an zentr. Stelle
– langsam, aufwendig aber wohl geordnet
Transaktionen in
verteilten DB
3
Online Transaction Processing
• Online-Zugriff der Benutzer auf Daten und
Programme
• Neues Problem: Wie garantieren, daß
Benutzer sich nicht gegenseitig Programme
sperren / Daten zerstören?
– Sequentielle Abarbeitung für den Zeitraum der
Bearbeitung einer Ressource muß unabhängig
von anderen Prg. / Benutzern garantiert werden
Transaktionen in
verteilten DB
4
Transaktion
Folge von Operationen, welche eine
gegebene Datenbank in ununterbrechbarer
Weise von einem konsistenten Zustand in
einen anderen überführt
Transaktionen in
verteilten DB
5
Anforderungen an Transaktionen
• Atomic - untrennbare Einheit; Alles oder
nichts
• Consistent - System befindet danach
entweder im Zustand vor oder nach der T.
• Isolated - Teilergebnisse sind für nicht
eingebundene Ressourcen nicht sichtbar
• Durable - Ergebnisse sind dauerhaft
Transaktionen in
verteilten DB
6
Besonderheiten in verteilten DB
• Eine T. kann Daten in DB1 und DB2 ändern (2)
• DB1 kann T. erfolgreich abschließen; DB2 mit
Fehler
• ein Koordinator ist erforderlich
Transaktionen in
verteilten DB
7
Komponenten zur Abwicklung
verteilter Transaktionen
• Anwendungssystem
– Initiator einer Transaktion
• Ressource Manager
– regelt den Zugriff auf Ressourcen, z.B. DBs
oder Dateisysteme
• Transaction Manager
– Verwaltung / Koordination von T. z.B. über die
Bereitstellung von Transaktionskennungen
Transaktionen in
verteilten DB
8
X/Open Distributed Transaction
Processing Reference Modell
Transaktionen in
verteilten DB
9
Struktur verteilter Transaktionen
• Mehrere Knoten
(Ressource Manager)
können beteiligt sein
• Startknoten Koordinatorknoten
• Aufrufstruktur gerichteter Graph
(Baum)
• Knoten nicht einzeln
rücksetzbar
Transaktionen in
verteilten DB
10
Two Phase Commit Protokoll (1)
• Phase 1
– bei EOT PREPARE an alle beteiligten RMs
– RMs sichern Wiederholbarkeit durch Schreiben
der Log-Daten sowie eines PREPARED Satz
– RMs senden jeweils PREPARED/FAILED an
Koordinator
– bei FAILED wird die T bereits lokal
zurückgesetzt, da globales FAIL feststeht
Transaktionen in
verteilten DB
11
Two Phase Commit Protokoll (2)
• Phase 2:
– nach PREPARED von allen RMs und Eintrag
in Log-Datei gilt T als erfolgreich
– COMMIT an alle beteiligten RMs, diese
schreiben COMMIT Satz in Log-Datei und
quittieren (ACK)
– bei FAILED von mind. einem RM ABORT an
alle RMs, die mit COMMIT geantwortet haben
Transaktionen in
verteilten DB
12
2PC Protokoll als PAP
Transaktionen in
verteilten DB
13
Crash Recovery (1)
• Sub - Knoten
a COMMIT Satz: erfolgreiche T. - REDO Rec.
b ABORT Satz: n. erfolgreiche T. - UNDO Rec.
c PREPARED Satz: Erg. bei Koordinator nachfragen; dieser hält Erg. noch, da kein ACK;
entsprechend Ergebnis UNDO/REDO
d keiner der 3: T abbrechen, da 2PC noch nicht
begonnen wurde
Transaktionen in
verteilten DB
14
Crash Recovery (2)
• Koordinator
a Ende Satz: UNDO/REDO je nach Commit-Erg.
– kein Ende Satz:
b ABORT Satz: UNDO Rec.; Information der
beteiligten RMs
c COMMIT Satz: REDO Rec.; Information der
beteiligten RMs
d keiner der 3: UNDO Rec.; Information der
beteiligten RMs
Transaktionen in
verteilten DB
15
Literatur
• E. Rahm: Mehrrechner-Datenbanksysteme
• G. Vossen: Datenmodelle, Datenbanksprachen und
Datenbank-Management-Systeme
• basicpro 1/99: W. Lale: Transaktionsmonitore
• http://kant.ti5.tu-harburg.de/Lecture/98-99ws/Tp/*
Transaktionen in
verteilten DB
16
Herunterladen