Kapitel 15 Verteilte Datenbanken

Slides:



Advertisements
Ähnliche Präsentationen
Mündliche Fachprüfung
Advertisements

Kapitel 15 Verteilte Datenbanken
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
Rücksetzen Bisher betrachtetes Scheduling gewährleistet Isolation, d.h. Serialisierbarkeit, setzt jedoch voraus, dass Transaktionen abgebrochen und rückgesetzt.
Verteilte Datenbanken
C. Mohan, Bruce Lindsay and R. Obermarck
„Ansicht Arbeitsbereich“ ist die nutzerspezifische Ansicht, in der alle Dokumente aufgelistet sind, die dem angemeldeten Benutzer zugeordnet sind. D.h.
© A. Kemper / A. Eickler1 Fehlerbehandlung (Recovery) 1.Lokaler Fehler in einer noch nicht festgeschriebenen (committed) Transaktion Wirkung muss zurückgesetzt.
1 Fehlerbehandlung (Recovery) 1.Lokaler Fehler in einer noch nicht festgeschriebenen (committed) Transaktion Wirkung muss zurückgesetzt werden R1-Recovery.
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 IX Christian Schindelhauer
Objektrelationales Mapping mit JPA Working with Persistent Objects Jonas Bandi Simon Martinelli.
verteilte Transaktionssysteme
1 Fehlerbehandlung (Recovery) 1.Lokaler Fehler in einer noch nicht festgeschriebenen (committed) Transaktion Wirkung muss zurückgesetzt werden R1-Recovery.
Tiny TP Tiny TP gehört zwar zu den optionalen Komponenten wird aber dringend empfohlen. Tiny TP erfüllt folgende Aufgaben: 1.Zerlegung von großen Nachrichten.
Gottfried Vossen 5. Auflage 2008 Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Kapitel 22: Grundlagen der Crash Recovery.
Transaktionen in verteilten Datenbanken
Prof. Dr. T. Kudraß1 Verteilte Datenbanken. Prof. Dr. T. Kudraß2 Einführung Daten sind auf mehreren Knoten (Sites) gespeichert, jeweils verwaltet durch.
Routing mit dem Distanzvektoralgorithmus
Datenbanksysteme für FÜ SS 2000 Seite Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz Isolation.
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.
Erhard Künzel für Info 9. Klasse: Digitale Schule Bayern© Erhard Künzel.
Recovery AIFB SS Recovery 5.1 Fehler im Datenbankbetrieb(1/10) (1)Transaktionsfehler (TF) (2)Systemfehler (SF) (3)Speicherfehler (SpF) Fehlerfallen.
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.
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,
Kapitel 15 Verteilte Datenbanken Motivation: geographisch verteilte Organisationsform einer Bank mit ihren Filialen Filialen sollen Daten lokaler Kunden.
Ein Pfeil zeigt Ihnen jetzt die zur Erfassung von Buchungsdaten nötigen Klicks und Eingaben. Zuerst einmal die so genannten Muss-Daten: Check-in und Check-out.
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Fehler in Rechnernetzen
WS 2012/13 Datenbanksysteme Mi 15:15 – 16:45 R Vorlesung #11 Transaktionsverwaltung.
WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 Vorlesung #6 Fehlerbehandlung.
WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R Vorlesung #10 Transaktionsverwaltung.
Vorlesung #9 Fehlerbehandlung
Replikation und Synchronisation
Festschreibe-Protokoll (1) Globales Zwei-Phasen-Festschreibe-Protokoll (2- Phasen-Commit, 2PC): Phase 1: –Koordinator benachrichtigt Ressourcen, dass Commit.
Datenbanksysteme Technische Grundlagen Transaktions-Konzept, Mehrbenutzer-Synchronisation, Fehlerbehandlung Prof. Dr. Manfred Gruber FH München.
Vorlesung Datenbanksysteme WS 2.0 Christoph Koch (Subject: DBVO:...
ADAT©2004,2006 Dipl. - Ing. Walter SabinSeite: 48 Version 1.0a Recovery Wiederherstellung eines konsistenten Datenbankzustandes nach Fehlersituationen.
Problem: Datenübertragung Messwerte an B schickenDaten annehmen AB 0,0,1,0,1,0,1,1,1,0.
Lokales 2-Phasen-Festschreibe- Protokoll Segment-Verwalter führt commit(T i ) in zwei Phasen aus: Phase 1: Sicherstellung der Wiederholbarkeit. –Für jedes.
Transaktionen Dr. Heidrun Bethge Datenbanken II.
Fehlerbehandlung (Recovery)
Transaktionsverwaltung
Wiederanlauf nach Systemzusammenbruch Aufgabe: Bei Noforce-Strategie Wiederholung aller noch nicht in die Datenbasis eingebrachten Änderungen bereits abgeschlossener.
Recovery    AIFB SS Grundlegende Annamen(1/2) Um den Erfolg der der Recovery-Maßnahmen zu gewährleisten, werden folgende Annahmen.
Transaktionen in verteilten Datenbanken
HEINZ NIXDORF INSTITUT Universität Paderborn Fachbereich Mathematik/Informatik Algorithmische Probleme in Funknetzwerken VIII Christian Schindelhauer
Gottfried Vossen 5. Auflage 2008 Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Kapitel 23: Verteilte Transaktionsverarbeitung.
Semantische Integritätsbedingungen  AIFB SS Überwachung von Integritätsbedingungen (1/3) Dem DBMS muß mitgeteilt werden, wann eine Integritätsbedingung.
Sicherung gegen Medienverlust (1) Medienverlust = Verlust der Datenbasis und/oder des Protokolls. Vorbeugung durch periodische Sicherung von Datenbasis.
Recovery    AIFB SS (1/6) Durchführung der Recovery-Maßnahmen(1/6) Transaktions-Fehler (TF) T1 T2 T3 Zeitt Transaktion T2 wird vom.
Vs Verteilte Transaktionen Situation:Fragmentierung: Ein Datenbestand ist über mehrere Stationen verteilt (z.B. verteilte Datenbank, verteiltes Dateisystem,...)
6.3 Verteilte Transaktionen
Visualisierung verteilter Systeme
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
Vs Auswahlalgorithmen (election algorithms) dienen der Wahl eines Koordinators („Gruppenleiters“) einer Gruppe bei „halbverteilten“ Algorithmen.
Mailserver IT-Zertifikat der Phil.-Fak.: Advanced IT Basics
Realisierung verteilter Anwendungen: Teil 8 zBeim vorigen Mal: yMultitier-Architekturen: Transaktionen zInhalt heute: yFortsetzung der Einführung zu Multitier-
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
Übung – Recovery Manager Undo Redo Algorithmus
6.3 Verteilte Transaktionen
Vorlesung #7 Fehlerbehandlung
Transaktionsabbruch, System Crash, Media Failure
Vorlesung #7 Fehlerbehandlung
Vorlesung #7 Fehlerbehandlung
Vorlesung #10 Fehlerbehandlung
 Präsentation transkript:

Kapitel 15 Verteilte Datenbanken nur 2-Phase-Commit Transaktionsverarbeitung (Kap. 16.7) Folie 5 drückt das wesentliche aus!

Transaktionskontrolle in VDBMS Verteiltes-DBMS Transaktionen können sich bei VDBMS über mehrere Rechnerknoten erstrecken  Recovery: Redo: Wenn eine Station nach einem Fehler wieder anläuft, müssen alle Änderungen einmal abgeschlossener Transaktionen - seien sie lokal auf dieser Station oder global über mehrere Stationen ausgeführt worden - auf den an dieser Station abgelegten Daten wiederhergestellt werden. Undo: Die Änderungen noch nicht abgeschlossener lokaler und globaler Transaktionen müssen auf den an der abgestürzten Station vorliegenden Daten rückgängig gemacht werden.

EOT-Behandlung Die EOT (End-of-Transaction)-Behandlung von globalen Transaktionen stellt in VDBMS ein Problem dar. Eine globale Transaktion muss atomar beendet werden, d.h. entweder commit: globale Transaktion wird an allen (relevanten) lokalen Stationen festgeschrieben oder abort: globale Transaktion wird gar nicht festgeschrieben  Problem in verteilter Umgebung, da die Stationen eines VDBMS unabhängig voneinander „abstürzen“ können

Problemlösung: Zweiphasen-Commit-Protokoll 2PhaseCommit  gewährleistet die Atomarität der EOT-Behandlung das 2PC-Verfahren wird von sog. Koordinator K überwacht gewährleistet, dass die n Agenten (=Stationen im VDBMS) A1,...An, die an einer Transaktion beteiligt waren, entweder alle von Transaktion T geänderten Daten festschreiben oder alle Änderungen von T rückgängig machen

Nachrichtenaustausch beim 2PC-Protokoll (für 4 Agenten) PREPARE FAILED/READY COMMIT/ABORT ACK

Ablauf der EOT-Behandlung beim 2PC-Protokoll K schickt allen Agenten eine PREPARE-Nachricht, um herauszufinden, ob sie Transaktionen festschreiben können jeder Agent Ai empfängt PREPARE-Nachricht und schickt eine von zwei möglichen Nachrichten an K: READY, falls Ai in der Lage ist, die Transaktion T lokal festzuschreiben FAILED, falls Ai kein commit durchführen kann (wegen Fehler, Inkonsistenz etc.) hat K von allen n Agenten A1,...,An ein READY erhalten, kann K ein COMMIT an alle Agenten schicken mit der Aufforderung, die Änderungen von T lokal festzuschreiben; antwortet einer der Agenten mit FAILED od. gar nicht innerhalb einer bestimmten Zeit (timeout), schickt K ein ABORT an alle Agenten und diese machen die Änderungen der Transaktion rückgängig haben die Agenten ihre lokale EOT-Behandlung abgeschlossen, schicken sie eine ACK-Nachricht (=acknowledgement, dt. Bestätigung) an den Koordinator

Zustandsübergang beim 2PC-Protokoll: Koordinator „Bullet“  = wichtigste Aktion(en) Initial EOT: sende PREPARE an alle Agenten Bereit Timeout oder FAILED empfangen: READY von allen Agenten empfangen: abort ins Log ABORT senden commit ins Log sende COMMIT Abgebrochen Festschreibend von allen ACK empfangen: von allen ACK empfangen: Fertig

Zustandsübergang beim 2PC-Protokoll: Agent Wartend PREPARE empfangen und lokal alles okay: Timeout oder lokaler Fehler entdeckt: Log-Einträge ausschreiben ready ins Log sende READY abort ins Log sende FAILED Bereit ABORT empfangen: COMMIT empfangen: abort ins Log sende ACK commit ins Log sende ACK Abgebrochen Festgeschrieben „Bullet“  = wichtigste Aktion(en) PREPARE empfangen: sende FAILED

Fehlersituationen des 2PC-Protokolls Absturz eines Koordinators Absturz eines Agenten verlorengegangene Nachrichten

Absturz eines Koordinators Absturz vor dem Senden einer COMMIT-Nachricht  Rückgängigmachen der Transaktion durch Versenden einer ABORT-Nachricht Absturz nachdem Agenten ein READY mitgeteilt haben  Blockierung der Agenten  Hauptproblem des 2PC-Protokolls beim Absturz des Koordinators, da dadurch die Verfügbarkeit des Agenten bezüglich andere globaler und lokaler Transaktionen drastisch eingeschränkt ist Um Blockierung von Agenten zu verhindern, wurde ein Dreiphasen-Commit-Protokoll konzipiert, das aber in der Praxis zu aufwendig ist (VDBMS benutzen das 2PC-Protokoll).

Absturz eines Agenten antwortet ein Agent innerhalb eines Timeout-Intervalls nicht auf die PREPARE-Nachricht, gilt der Agent als abgestürzt; der Koordinator bricht die Transaktion ab und schickt eine ABORT-Nachricht an alle Agenten „abgestürzter“ Agent schaut beim Wiederanlauf in seine Log-Datei: kein ready-Eintrag bzgl. Transaktion T  Agent führt ein abort durch und teilt dies dem Koordinator mit (FAILED-Nachricht) ready-Eintrag aber kein commit-Eintrag  Agent fragt Koordinator, was aus Transaktion T geworden ist; Koordinator teilt COMMIT oder ABORT mit, was beim Agenten zu einem Redo oder Undo der Transaktion führt commit-Eintrag vorhanden  Agent weiß ohne Nach-fragen, dass ein (lokales) Redo der Transaktion nötig ist

Verlorengegangene Nachrichten PREPARE-Nachricht des Koordinators an einen Agenten geht verloren oder READY-(oder FAILED-)Nachricht eines Agenten geht verloren  nach Timeout-Intervall geht Koordinator davon aus, dass betreffender Agent nicht funktionsfähig ist und sendet ABORT-Nachricht an alle Agenten (Transaktion gescheitert) Agent erhält im Zustand Bereit keine Nachricht vom Koordinator  Agent ist blockiert, bis COMMIT- oder ABORT-Nachricht vom Koordinator kommt, da Agent nicht selbst entscheiden kann (deshalb schickt Agent eine „Erinnerung“ an den Koordinator)