Kap. 9: Verteilte. 9.2 Transaktionskonzept. 9.4 Das 2-Phasen Commit-Protokoll



Ähnliche Dokumente
Wiederherstellung (Recovery)

Übungen zur Vorlesung. Datenbanken I

Recovery- und Buffermanager

Fragenkatalog zum Kurs 1666 (Datenbanken in Rechnernetzen) Kurstext von SS 96

TAV Übung 3. Übung 3: Verteilte Datenhaltung

Transaktionsverwaltung

P.A. Bernstein, V. Hadzilacos, N. Goodman

Datenbanken: Backup und Recovery

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

MetaQuotes Empfehlungen zum Gebrauch von

Datenbank-Administration im WS 2012/13 - Einführung in Projekt 3 - Prof. Dr. Klaus Küspert Dipl.-Math. Katharina Büchse Dipl.-Inf.

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Updatehinweise für die Version forma 5.5.5

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

4D Server v12 64-bit Version BETA VERSION

Synchronisation in Datenbanksystemen in a nutshell

IMAP Backup. Das Programm zum Sichern, Synchronisieren, Rücksichern und ansehen von gesicherten Mails. Hersteller: malu-soft

iphone-kontakte zu Exchange übertragen


Man liest sich: POP3/IMAP

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

OPERATIONEN AUF EINER DATENBANK

In 12 Schritten zum mobilen PC mit Paragon Drive Copy 11 und Microsoft Windows Virtual PC

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

Transaktionsverwaltung

Einfache und effiziente Zusammenarbeit in der Cloud. EASY-PM Office Add-Ins Handbuch

Vorlesung "Systemsoftware II" Wintersemester 2002/03

Windows Vista Security

Stapelverarbeitung Teil 1

Information zur Durchführung von. Software-Updates

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

Hinweise zum Update des KPP Auswahltools (Netzwerkinstallation) auf Version 7.2

3. Stored Procedures und PL/SQL

Anleitung zur. Installation und Konfiguration von x.qm. Stand: Februar 2014 Produkt der medatixx GmbH & Co. KG

EH2000 Ablauf am Morgen

Zentrale Installation

Wissenswertes über LiveUpdate

FastViewer Remote Edition 2.X

1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern

SJ OFFICE - Update 3.0

BSV Software Support Mobile Portal (SMP) Stand

Vorlesung "Verteilte Systeme" Wintersemester 2000/2001. Verteilte Systeme. 14. Transaktionen

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze

Einrichten eines Postfachs mit Outlook Express / Outlook bis Version 2000

Wollen Sie einen mühelosen Direkteinstieg zum Online Shop der ÖAG? Sie sind nur einen Klick davon entfernt!

Anleitung - Archivierung

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Benutzerverwaltung mit Zugriffsrechteverwaltung (optional)

Task: Nmap Skripte ausführen

NAS 251 Einführung in RAID

Internet online Update (Internet Explorer)

Anleitung Login Web-Treuhand

Microsoft Update Windows Update

Anlegen eines DLRG Accounts

1. Laden Sie sich zunächst das aktuelle Installationspaket auf herunter:

Update und Konfiguraton mit dem ANTLOG Konfigurations-Assistenten

Hinweise zur -Nutzung für Studierende

mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger

Die Dateiablage Der Weg zur Dateiablage

Kapitel 2 Transaktionsverwaltung

Daten-Synchronisation zwischen Mozilla Thunderbird (Lightning) / Mozilla Sunbird und dem ZDV Webmailer

Synchronisierung. Kommunikationstechnik, SS 08, Prof. Dr. Stefan Brunthaler 73

OutlookExAttachments AddIn

Datenbanksysteme II SS Übungsblatt 9: Wiederholung

Registrierung am Elterninformationssysytem: ClaXss Infoline

Thunderbird Portable + GPG/Enigmail

Reporting Services und SharePoint 2010 Teil 1

Installation der SAS Foundation Software auf Windows

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

Lizenzen auschecken. Was ist zu tun?

Transaktionen Recovery Isolationslevel. Datenbanksysteme. Transaktionen. Burkhardt Renz. Fachbereich MNI Technische Hochschule Mittelhessen

Windows Server 2012 R2 Essentials & Hyper-V

HOWTO Update von MRG1 auf MRG2 bei gleichzeitigem Update auf Magento CE 1.4 / Magento EE 1.8

Anleitung zum Upgrade auf SFirm Datenübernahme

Ablaufbeschreibung für das neu Aufsetzen von Firebird und Interbase Datenbanken mit der IBOConsole

PCC Outlook Integration Installationsleitfaden

In 15 einfachen Schritten zum mobilen PC mit Paragon Drive Copy 10 und Microsoft Windows Virtual PC

GeoPilot (Android) die App

Tipps und Tricks zu Netop Vision und Vision Pro

Anwenderleitfaden Citrix. Stand Februar 2008

Einrichtung Konto Microsoft Outlook 2010

(im Rahmen der Exchange-Server-Umstellung am )

Anleitung zum Upgrade auf SFirm Datenübernahme

Datenbanksysteme Technische Grundlagen Transaktions-Konzept, Mehrbenutzer-Synchronisation, Fehlerbehandlung

INDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline

Inkrementelles Backup

Die nachfolgende Anleitung zeigt die Vorgehensweise unter Microsoft Windows Vista.

plus Flickerfeld bewegt sich nicht

EasyWk DAS Schwimmwettkampfprogramm

Lehrer: Einschreibemethoden

Installationsanleitung SSL Zertifikat

1. Einführung. 2. Weitere Konten anlegen

How to do? Projekte - Zeiterfassung

1. Einschränkung für Mac-User ohne Office Dokumente hochladen, teilen und bearbeiten

Schrittweise Anleitung zur Installation von Zertifikaten der Bayerischen Versorgungskammer im Mozilla Firefox ab Version 2.0

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Internet online Update (Mozilla Firefox)

Lokale Installation von DotNetNuke 4 ohne IIS

Backup der Progress Datenbank

Transkript:

Kap. 9: Verteilte Transaktionsmechanismen 91 9.1 Einführung 9.2 Transaktionskonzept 9.3 Stellenlokale Commit-Verfahren 9.4 Das 2-Phasen Commit-Protokoll 95 9.5 X/Open Distributed ib t Transaction Processing Verteilte Systeme 9-1

9.1 Einführung Neues Problem bei der Entwicklung verteilter Anwendungen Ausfall von einzelnen Komponenten des verteilten Systems (partial failure property) komplexe Fehlersituationen in verteilten Anwendungsprogrammen Motivation für Transaktionen Atomare Aktionen als Erweiterung des DB-Tansaktionskonzepts zu allgemeinem Programmierkonstrukt Reduktion der Komplexität der Anwendungsprogrammierung in Gegenwart von Fehlern und Nebenläufigkeit Bessere Einsicht in die Wirkungsweise eines Programms Automatisches Backward Error Recovery, Kombination mit Forward Error Recovery-Verfahren möglich Verteilte Systeme 9-2

9.2 Transaktionskonzept Eine Transaktion ist die Zusammenfassung einer Menge von Aktionen (Operationen auf log. Betriebsmitteln) mit folgenden Eigenschaften (ACID): Atomicity = Atomarität im Fehlerfall (Alles-oder-Nichts):» Transaktion entweder vollständig ausgeführt oder erscheint, als ob nie begonnen» Kein Zwischenzustand zwischen Anfangs- und Endzustand sichtbar Consistency = Konsistenz:» Allgemein: Erfüllung aller Anwendungs-Constraints» Erreicht durch Serialisierbarkeit des nebenläufigen Verhaltens (vgl. Datenbanken) (Schwächeres Kriterium als Determiniertheit) Isolation:» Verhalten jeder Transaktion als ob "allein auf der Welt" Durability= Dauerhaftigkeit (Permanenz der Wirkung):» Wirkung abgeschlossener Transaktionen geht nicht verloren (selbst bei Auftreten aller erlaubten Fehler eines Fehlermodells) Verteilte Systeme 9-3

Bemerkungen 9.2 Isolierte Behandlung des Abbruchs einzelner Transaktionen oft als Transaktionseigenschaft angesehen ist jedoch Konsequenz einer strategischen Entscheidung im Spektrum Recovery Synchronisation (vgl. nicht-striktes 2-Phasen-Locking) Nicht-isoliertes Recovery führt zu kaskadierenden Aborts und erfordert zur korrekten Behandlung das Halten eines Abhängigkeitsgraphen it h (Recovery-Graph) Transaktionen beinhalten vorgeplante Recovery-Linien Verteilte Systeme 9-4

Lokale / Verteilte Transaktionen 9.2 Lokale Transaktion Wirkung auf einzelnes Rechensystem beschränkt Zustandsdiagramm begin active commit abort committed aborted Verteilte Transaktion Wirkung auf mehreren Stellen eines verteilten Rechensystems? im weiteren zu entwickeln Verteilte Systeme 9-5

Fehlermodell 9.2 Fehlermodell beschreibt alle vorhergesehenen Fehler, auf die ein System geordnet reagiert, alle anderen heißen Katastrophen. Transaktionsfehler (transaction abort): Zurücksetzen einzelner Transaktionen, z.b. durch» Expliziter Abbruch durch Benutzer» Fehler im Applikationsprogramm p» als Folge einer Deadlockauflösung Stellenfehler (site failure): Ausfall eines beteiligten Rechensystems, z.b. durch» Transiente oder permanente Hardware-Fehler (auch Stromausfall)» Betriebssystemabsturz mit reboot Alle laufenden Prozesse stürzen ab Alle Transaktionen im Zustand active gehen in den Zustand aborted über Verteilte Systeme 9-6

Fehlermodell (2) 9.2 Medienfehler: Nicht-behebbarer Fehler auf nicht-flüchtigem Speichermedium, das von Transaktionsverarbeitung genutzt wird, z.b.» Magnetplatte (genutzt für Speicherung der log. Daten)» Magnetband (genutzt t für Logging) Standardbehandlung durch stabilen Speicher (redundante Speicherung auf mehreren Medien, z.b. Spiegelplatten, RAID,...) hier nicht weiter betrachtet Kommunikationsfehler: Fehler im Nachrichtensystem ht t führen zum Verlust von Nachrichten Partitionierung: Zerfall des Netzes in mehrere isolierte Teilnetze Verteilte Systeme 9-7

Flache / Geschachtelte Transaktionen 9.2 Flache Transaktionen klassisches Modell aus DB- Kontext Transaktion involviert Menge von Objekten (log. Betriebsmitteln) TA1 TA2 Transaktionen können Objekte gemeinsam nutzen (geregelt durch Concurrency Control- Mechanismen) Transaktionen können nicht geschachtelt werden involvierte Objekte Verteilte Systeme 9-8

Flache / Geschachtelte Transaktionen (2) 9.2 Geschachtelte Transaktionen (Nested Transactions) Eine Transaktion kann (auch zu einem Zeitpunkt) innere Transaktionen (Subtransaktionen) besitzen isolierte Zurücksetzbarkeit innerer Transaktionen: Abort einer inneren TA führt zu Exception beim Vater (nicht zu dessen Abbruch!) Abort einer TA führt zum Abort aller inneren TAen Commitment relativ zum Vater (endgültig erst mit Commitment der Top-Level TA) Nebenläufigkeitskontrolle auf jeder Schachtelungsebene TA11 Top-Level Transaktion TA1 TA12 TA121 TA122 Verteilte Systeme 9-9

9.3 Stellenlokale Commit-Verfahren Verfahren zur lokalen Bereitstellung von Atomarität im Fehlerfall und Permanenz der Wirkung: Intention Lists (Lampson 1981) Shadowing (Gray 1981) Write-Ahead Logging Verteilte Systeme 9-10

Intention Lists 9.3 Vorgehensweise Beabsichtigte Veränderungen auf Datenobjekten werden in Liste gesammelt (d.h. Arbeiten auf Kopien der Originaldaten) Liste wird in stabilen Speicher geschrieben Entscheidung (committed-aborted) treffen Falls aborted: Liste verwerfen Falls committed: Originale der Objekte in nicht-flüchtigem Speicher aktualisieren. Nach Stellenfehler Analysieren der Listen in stabilem Speicher Falls keine Liste vorhanden oder Liste unvollständig (Stellenfehler beim Schreiben der Liste): Transaktion ist aborted und Liste löschen Falls Liste vollständig: Aktualisieren der Objekte gemäß Liste (idempotent) und abschließend Löschen der Liste Verteilte Systeme 9-11

Shadowing 9.3 Vorgehensweise Nichtflüchtiger Speicher als Baumstruktur mit Verweisblöcken (entsprechend UNIX- Dateisystem) angenommen After Images aller Blöcke als Shadow- Version bis zur Wurzel anlegen Entscheidung (committed-aborted) treffen durch atomaren Pointer-Swap in Root- Block (Schreiben eines Blockes) Falls aborted: Shadow-Struktur verwerfen Falls committed: ehemalige Original- Blöcke freigeben, Shadow-Blöcke sind jetzt die Originale Nach Stellenfehler Entweder alter Zustand oder neuer Zustand ist etabliert t root atomic pointer swap Verteilte Systeme 9-12

Shadowing (2) 9.3 Vorteile Atomarer Zustandswechsel durch Schreiben eines/des Root-Blockes Nachteile keine Nebenläufigkeit von Commit-Vorgängen Physische Anordnung der Datenblöcke zueinander geht durch Commit-Vorgänge verloren, da Shadow-Blöcke aus der Frei-Liste genommen werden müssen. Verteilte Systeme 9-13

Write-Ahead Logging 9.3 Log-Grundlagen Log besteht logisch aus Folge von sogenannten Log Records variabler Länge identifiziert durch Log Sequence Number LSN (Byte Offset im Log-Strom analog TCP Sequenznummer) Log ist gemeinsam genutzt innerhalb eines Knotens Verkettung von zusammengehörigen Log-Einträgen eines Commit-Vorgangs Realisierung des Logs in replizierten Dateien (stabiler Speicher) und mehreren Generationen von Log-Files Übergeordnete Tabelle mit Log-Einträgen und SQL-Zugriff in Datenbanken üblich Blockstruktur des Mediums... LSN 1000 2000 3800 4000 5000 7000 7200 7400 älter Schreibrichtung jünger Verteilte Systeme 9-14

Write-Ahead Logging (2) 9.3 Schreiben von Log-Einträgen Nur sequentielles Schreiben der Log Files (hohe Performance) Gepuffertes Schreiben von Log-Einträgen im Arbeitsspeicher Forced Write eines Log-Eintrags erzwingt Ablage aller vorangegangenen Log-Einträge (mit kleinerer LSN) und Rückkehr aus der Operation, nachdem Block physich auf dem Medium steht Lesen von Log-Einträgen Nur im Fall von Stellenfehlern und evtl. bei Transaktionsfehlern (s.u.) Log-Verkürzung Log kann logisch beliebig lang werden, aber Restart-Dauer nach Stellenfehler muss begrenzt werden Nutzung von Checkpoints Verteilte Systeme 9-15

Write-Ahead Logging (3) 9.3 Nutzung von Log-Einträgen im Rahmen des lokalen Commitments Log Records einer Transaktion sind untereinander verkettet Schreiben von Before Images (Undo Records) für alle Objekte, deren persistenter t Originalzustand i durch die Transaktion im Zustand active geändert werden (Update in Place). Schreiben von After Images (Redo Records) für alle erarbeiteten finalen Objektzustände der Transaktion Ablegen eines finalen Outcome Records mittels Forced Write:» erzwingt Ablage aller zugehörigen Log-Einträge» erscheint dieser im Log, ist das Commitment vollzogen» kann auch als Flag im letzten Block realisiert sein Wit Write-Ahead Logging Protocol Gesichertes Schreiben von Log Records vor Modifikation des originalen persistenten Zustands Verteilte Systeme 9-16

Write-Ahead Logging (4) 9.3 Behandlung von Transaktionsfehlern (Eventuell) "Aborted" Outcome Record erzeugen und ablegen Falls Before Records geschrieben wurden, deren Inhalte wieder als persistenten Objektzustand etablieren Behandlung von Stellenfehlern Lesen des Logs Für alle nicht abgeschlossenen Transaktionen evtl. vorhandene Before Images etablieren Für alle Transaktionen mit vorhandenem "Committed" Outcome Record das jeweils letzte t After Image aller Objekte (irgendwann) als persistenten Objektzustand etablieren (Idempotenz) Verteilte Systeme 9-17

Write-Ahead Logging (5) 9.3 Vorteile Mehrere ineinander verzahnte Commit-Vorgänge können gleichzeitig stattfinden Hohe I/O-Performance durch Buffering und Sequentielles Schreiben des Logs Anordnung der Datenblöcke des persistenten Zustands bleibt erhalten (Update in Place) Parallelisierung des Logs möglich Nach Stellenfehler und anschließendem Neustart muss nur der Log analysiert werden Log kann auch von Commit-Protokollen mitgenutzt werden (s.u.) Verteilte Systeme 9-18

9.4 Das 2-Phasen Commit-Protokoll Commit-Protokolle dienen dazu, in einer verteilten Umgebung die Commit/Abort- Entscheidung einer Menge von Prozessen zu koordinieren z.b. für Durchsetzung von Atomarität im Fehlerfall und Dauerhaftigkeit für verteilte Transaktionsumgebung sind Spezialfälle sog. Konsensus-Protokolle (hier: ja/nein) 2-P-C-Protokoll Protokoll ist das am weitesten verbreitete Protokoll von hoher praktischer Bedeutung und auch in zahlreichen Produkten enthalten im weiteren besprochen Allgemeinere Theorie Mehrphasen-Commit-Protokolle (z.b. Skeen, 1981) schwache / starke Terminierungsbedingungen führen zu blockierenden / nichtblockierenden Commit-Algorithmen i Verteilte Systeme 9-19

Eigenschaften eines Commit-Algorithmus 9.4 Ein Commit-Algorithmus für eine Menge von Prozessen besitzt folgende Eigenschaften: 1. Alle Prozesse, die eine Entscheidung treffen, treffen die gleiche Entscheidung 2. Eine einmal getroffene Entscheidung ist bindend d für jeden Prozess und kann nicht widerrufen werden 3. Nur wenn alle Prozesse für Commit entscheiden, lautet die gemeinsame Entscheidung auf Commit, d.h. auch: sobald ein Prozess auf Abort entscheidet, muss die gemeinsame Entscheidung auf Abort lauten 4. Wenn zu einem Zeitpunkt alle aufgetretenen Fehler repariert sind und hinreichend lange keine neuen Fehler auftreten, erreichen die Prozesse eine gemeinsame Entscheidung. Verteilte Systeme 9-20

Begriffe 9.4 Fenster der Verwundbarkeit (des Commit-Protokolls) Zeitspanne zwischen der lokalen Commit-Enscheidung eines Prozesses und Kenntnis der Gesamtentscheidung wird auch Unsicherheitsperiode des Prozesses (Uncertaincy Period) )genannt Blockierendes Protokoll Protokoll sieht vor, dass ein Prozess die Reparatur eines Fehlers abwarten muss Unabhängiges Recovery Prozess kann nach einem Fehler eine Entscheidung treffen, ohne mit anderen Prozessen zu kommunizieren i Teilhaber (Participants) Prozesse, die Commit-Protokoll abwickeln (vgl. auch elearning-modul "Verteilte Algorithmen") Verteilte Systeme 9-21

Background 9.4 Sätze: Wenn Kommunikationsfehler oder Gesamtsystemfehler möglich sind, gibt es kein Commit-Protokoll, das keinen Prozess blockiert Bemerkung: nicht ausgeschlossen ist die Existenz eines nichtblockierenden Commit-Protokolls, wenn nur einzelne Stellen ausfallen Kein Commit-Protokoll kann unabhängiges Recovery ausgefallener Prozesse garantieren Bemerkung: Es gibt kein Commit-Protokolls ohne Unsicherheitsperiode für Teilhaber Verteilte Systeme 9-22

Grundlagen des 2-P-C-Protokolls 9.4 J. Gray, 1978 Blockierender Commit-Algorithmus mit schwacher Terminierungseigenschaft ( treten keine Fehler auf, treffen alle Prozesse irgendwann eine Entscheidung). Rollen Teilhaber /Teilnehmer Koordinator als ausgezeichneter Teilhaber, der Abwicklung des Protokolls steuert Bemerkung: i.d.r. Teilhaber der Ursprungsstelle der Transaktion, der Commit-Vorgang initiiertitii t Koordinator kennt alle Teilhaber Teilhaber kennen nur ihren Koordinator, aber sich nicht gegenseitig Nutzung von jeweils lokalem Log jedes Teilhabers zur Fortschreibung des Zustands des Commit-Vorgangs Verteilte Systeme 9-23

2-P-C-Protokoll 9.4 Nachrichtenfluss (Normalfall ohne Fehler) K prepare (TID)... T 1 T 2 T n 1. Phase Abstimmung 2. Phase Entscheidung K... T 1 T 2 T n prepared (ok failed) commit abort K done (optional) K Koordina T i Teilhaber Verteilte Systeme 9-24

2-P-C-Protokoll (2) 9.4 Zustandsdiagramm des Koordinators begin prepare active Auffordern K prepare (TID wait Warten abort auf Antworten decide(ok) decide(failed) lokale committed aborted Entscheidung des Koordinators K commit abort Verbreiten wait done done T 1 T n Warten T T auf Bestätigung Vergessen T 1 prepared commit abo T n done (option K Verteilte Systeme 9-25

2-P-C-Protokoll (3) 9.4 Zustandsdiagramm der Teilhaber begin active prepare K prepare (T nster der erwundbarkeit prepared prepared d( (ok) prepared d(failed) lokales Vorbereiten T 1 T n prepar Warten wait auf Entscheidung K des Koordinators comm commit abort abort committed aborted Aktionen entsprechend T 1 T n Entscheidung ausführen done done (opti done Ende K mitteilen Verteilte Systeme 9-26

2-P-C-Protokoll (4) 9.4 Logging des Koordinators TID: begin (T 1,..., T n ) K Auffordern prepare p (TID) Warten auf Antworten T 1 T n tscheidet n Ausgang rced write" TID: committed TID: aborted Lokale Entscheidung des Koordinators Verbreiten K prepared commit abor Warten auf Bestätigung T 1 T n done (optiona TID: done Vergessen K Verteilte Systeme 9-27

2-P-C-Protokoll (5) 9.4 Logging der Teilhaber TID: begin (coord K) K prepare p (T TID: after image TID: after image TID: after image Lokales Vorbereiten T 1 T n "forced write" TID: prepared TID: committed TID: done TID: aborted entsprechend bei einseitigem Abort Warten auf Entscheidung des Koordinators! Aktionen entsprechend Entscheidung ausführen Ende mitteilen T 1 K K T n prepare commi abort done (optio Verteilte Systeme 9-28

2-P-C-Protokoll (6) 9.4 zusammenfassendes Zustandsdiagramm für verteilte Transaktionen active begin prepare prepared commit abort committed abort aborted neuer Zustand Verteilte Systeme 9-29

2-P-C-Protokoll (7) 9.4 Behandlung von Transaktionsfehlern Übergang von aktiven Transaktionen in den Zustand aborted unilaterale Abort-Entscheidung von Koordinator und jedem Teilhaber möglich» Koordinator sendet später abort, auch wenn alle Teilhaber mit prepared geantwortet haben» Teilhaber antworten auf prepare-request des Koordinators mit prepared (failed). Behandlung von Kommunikationsfehlern bei aktiven Transaktionen Erkennung (wie auch anderer Vorkommnisse) durch Timeouts Überführung in Transaktionsfehler mit Behandlung wie oben Verteilte Systeme 9-30

2-P-C-Protokoll (8) 9.4 Beispiel für Abort-Entscheidung des Koordinators Auffordern K prepare (TID) Warten auf Antworten T 1 T n Abort- Entscheidung des Koordinators Verbreiten K prepared abort Timeout T 1 T n Verteilte Systeme 9-31

2-P-C-Protokoll (9) 9.4 Beispiel für Abort-Entscheidung eines Teilhabers prepare (TID) T 1 prepared (ok) abort K K T n Timeout Lokale Abort-Aktionen schon hier prepared (failed) T 1 T n Verteilte Systeme 9-32

2-P-C-Protokoll (10) 9.4 Behandlung eines Stellenfehlers des Koordinators Vorgehensweise abhängig von Information im Log (a) TID: begin (T 1,..., T n ) abort-entscheidung, Protokoll fortsetze (b) TID: begin (T 1,..., T n ) TID: committed TID: aborted wurde vor Stellenfehler bereits entschieden Protokoll fortsetzen: sende commit / abort-nachricht an alle Teilhaber (c) TID: begin (T 1,..., T n ) TID: committed nichts zu tun TID: done Verteilte Systeme 9-33

2-P-C-Protokoll (11) 9.4 Behandlung eines Stellenfehlers eines Teilhabers Vorgehensweise ebenfalls abhängig von Information im Log (a) TID: begin (coord K) abort (b) TID: begin (coord K) TID: after image TID: after image abort (c) TID: begin (coord K) TID: after image TID: after image TID: after image TID: prepared keine unilaterale Entscheidung möglich Nachfrage bei Koordinator K getdecision(tid) Protokoll fortsetzen t Verteilte Systeme 9-34

2-P-C-Protokoll (11) 9.4 Behandlung eines Stellenfehlers eines Teilhabers (2) (d) TID: begin (coord K) TID: after image TID: after image TID: after image TID: prepared TID: committed TID: aborted unabhängiges Recovery möglich lokale commit / abort-aktionen wiederholen Protokoll fortsetzen (e) TID: begin (coord K)... TID: done nichts zu tun Verteilte Systeme 9-35

Erweiterungen 9.4 Coordinator Migration Die Koordinator-Rolle wird einem hoch zuverlässigen Rechner übertragen Damit wird Blockierung der Teilhaber bei Ausfall des Koordinators unwahrscheinlicher Group Commitment Gemeinsames Commitment mehrerer Transaktionen Weniger forced write-operationen Durchsatzsteigerung bei geringfügig erhöhter Ausführungszeit des Protokolls Kooperative Terminierung Teilhaber kennen sich gegenseitig Nach Stellenfehler kann Nachfrage bei anderen Teilhabern die Blockierung vermindern, falls jetzt Koordinator ausgefallen ist Verteilte Systeme 9-36

Erweiterungen (2) 9.4 Presumed Abort / Presumed Commit Default-Wert für Ausgang der Transaktion angenommen, wenn kein spezifischer Outcome Record im Log vorhanden ist Vereinfachungen bei Log-Verkürzung möglich Dezentrales 2-Phasen-Commit-Protokoll Kein zentraler Koordinator Kommunikation der Teilhaber untereinander, z.b. vorteilhaft über Broadcast-Protokoll Verringert Zeitkomplexität Verteilte Systeme 9-37

9.5 X/Open Distributed Transaction Processing X/Open Historisches Industriekonsortium zur Förderung offener Systeme Bildet 1996 zusammen mit Open Software Foundation (OSF) die Open Group Modell für Transaktionsverarbeitung in offenen verteilten Umgebungen (OLTP) Überwindung von Hersteller-spezifischen Lösungen der Transaktionssteuerung Anwendung des 2-Phasen-Commit-Protokolls Kommerziell ausgerichtet auf RDBMSe Problem klassischer lokaler Datenbanksysteme enge innere Verquickung der verschiedenen Funktionsbereiche Unterstützung für verteilte Transaktionen erfordert Auftrennung zwischen Prepare-Aktivitäten und Commit-Entscheidung Commit-Entscheidung muss auch extern getroffen werden können Verteilte Systeme 9-38

Architekturüberblick 9.5 Homogener Fall Verteilte Applikation begin commit abort TX SQL... SQL... TX begin commit abort Transaction Manager TM XA Resource Resource Manager Resource Manager Resource Resource Manager (RM) Manager (RM) Resource Manager (RM) Manager (RM) RM RM entfernter t Zugriff XA Transaction Manager TM 2-Phasen-Commit-Protokoll TM-spezifische Variante RM kapseln log. Betriebsmittel (DB-Tupel, Dateien, Messages, Objekte,...) TM kapselt Transaktionssteuerung für identische TMs, unterschiedliche RMs Verteilte Systeme 9-39

Architekturüberblick (2) 9.5 Heterogener Fall Verteilte Applikation begin commit abort TX SQL... SQL... TX begin commit abort Transaction Manager TM A XA XA+ Resource Resource Manager Resource Manager (RM) Manager (RM) RM entfernter t Zugriff OSI TP Resource Manager Resource Manager (RM) Resource Manager (RM) RM Communication Manager KM Communication Manager KM XA XA+ Transaction Manager TM B 2-P-C-Variante mit Coordinator Migration Verteilte Systeme 9-40

Beispiele 9.5 X/Open DTP-konforme Transaction Manager Tuxedo» historischer De-Facto-Standard» von USL, jetzt BEA, jetzt Oracle» nur flache Transaktionen Encina» unterstützt auch genestete Transaktionen» nutzt OSF DCE» von Transarc (Ausgründung CMU), jetzt eingegliedert in IBM CICS/6000» CICS: IBM Host-Standard» Encina für AIX (RS 6000) NCR Top End Verteilte Systeme 9-41

Beispiele (2) 9.5 Transaction Manager in CORBA- und J2EE-Produkten BEA Weblogic: Tuxedo IONA Orbix: Encina Heute i.d.r. in Applikationsserver mit integriert X/Open DTP-konforme Resource Manager (XA-Schnittstelle) Relationale DBMSe» historisch erstes System mit XA-Schnittstelle: Informix» heute von allen großen DB-Systemen unterstützt» selbst bei Microsoft (MS DTC) Message Queueing Systeme» MQ Series» Swift MQ Dateisysteme...» ISAM XA (Gresham Computing) Verteilte Systeme 9-42