8. Synchronisations-Verfahren



Ähnliche Dokumente
Synchronisation in Datenbanksystemen in a nutshell

Synchronisierung von Transaktionen ohne Sperren. Annahme: Es gibt eine Methode, zu erkennen, wann eine Transaktion die serielle Ordnung verletzt.

Software-Engineering und Datenbanken

Grundlagen verteilter Systeme

6.2 Scan-Konvertierung (Scan Conversion)

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

1 topologisches Sortieren

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

WinVetpro im Betriebsmodus Laptop

Speicher in der Cloud

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Serialisierbarkeit von Historien: Minimalanforderung bzgl. "akzeptabler" Synchronisation

Stand: Adressnummern ändern Modulbeschreibung

ecaros2 - Accountmanager

... T n T 1 T 2 T 3. Transaktions-Manager. Daten-Manager. Recovery-Manager Puffer-Manager. Datenbank

Grundlagen der Theoretischen Informatik, SoSe 2008

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

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Dokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser

Enigmail Konfiguration

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

Handbuch. TMBackup R3

Umzug der abfallwirtschaftlichen Nummern /Kündigung

Das Briefträgerproblem

Transaktionen und Synchronisation konkurrierender Zugriffe

Informationsblatt Induktionsbeweis

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

Plotten von Linien ( nach Jack Bresenham, 1962 )

Algorithmentheorie Maximale Flüsse

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

Zwischenablage (Bilder, Texte,...)

Lernaufgabe Industriekauffrau/Industriekaufmann Angebot und Auftrag: Arbeitsblatt I Auftragsbeschreibung

7. Bewässerung: Mehrmals pro Woche

Electronic Systems GmbH & Co. KG

1 Mathematische Grundlagen

Möglichkeiten des Parallelbetriebs der VR-NetWorld Software Parallelbetrieb VR-NetWorld Software 4.4x und Version 5.0 ab der 2. Beta!

Synchronisations- Assistent

Inventur. Bemerkung. / Inventur

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

Monitore. Klicken bearbeiten

S7-Hantierungsbausteine für R355, R6000 und R2700

AutoCAD Dienstprogramm zur Lizenzübertragung

Bei der Anlage von Pauschalen ist folgendes zu beachten!!!!!!!!

Charakteristikum des Gutachtenstils: Es wird mit einer Frage begonnen, sodann werden die Voraussetzungen Schritt für Schritt aufgezeigt und erörtert.

Installation OMNIKEY 3121 USB

1. Einführung Erstellung einer Teillieferung Erstellung einer Teilrechnung 6

Sichere Anleitung Zertifikate / Schlüssel für Kunden der Sparkasse Germersheim-Kandel. Sichere . der

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

Bedienungsanleitung: Onlineverifizierung von qualifiziert signierten PDF-Dateien

Datenaufbereitung in SPSS. Daten zusammenfügen

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

Alle Schlüssel-Karten (blaue Rückseite) werden den Schlüssel-Farben nach sortiert und in vier getrennte Stapel mit der Bildseite nach oben gelegt.

Kurzanleitung zur Übermittlung der mündlichen Prüfungsergebnisse mit DSD-Online. Stand: Dezember Schulmanagement weltweit

Animationen erstellen

Lizenzierung von SharePoint Server 2013

Arge Betriebsinformatik GmbH & Co.KG, CAP News 40, Februar CAP-News 40

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

2015 conject all rights reserved

Mit dem Tool Stundenverwaltung von Hanno Kniebel erhalten Sie die Möglichkeit zur effizienten Verwaltung von Montagezeiten Ihrer Mitarbeiter.

SMS/ MMS Multimedia Center

Nutzung dieser Internetseite

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

BERECHNUNG DER FRIST ZUR STELLUNGNAHME DES BETRIEBSRATES BEI KÜNDIGUNG

Konzepte der Informatik

Domänenmodell: Fadenkommunikation und -synchronisation

Bereich METIS (Texte im Internet) Zählmarkenrecherche

Dokumentation IBIS Monitor

STORES2. Operation Manual Version Warenretoure mit Zustimmung des Headquarter

Version White Paper ZS-TimeCalculation und die Zusammenarbeit mit dem iphone, ipad bzw. ipod Touch

Abwesenheitsnotiz im Exchange Server 2010

FAQ Spielvorbereitung Startspieler: Wer ist Startspieler?

Dieser Text beschreibt die Neuerungen von DaNiS und die Vorgehensweise beim DaNiS-Update.

Energetische Klassen von Gebäuden

Erstellen von x-y-diagrammen in OpenOffice.calc

UMSTELLUNG DER RÖNTGEN-SCHNITTSTELLE DÜRR-DBSWIN AUF DÜRR-VDDS

Dokumentation zur Versendung der Statistik Daten

Manager. von Peter Pfeifer, Waltraud Pfeifer, Burkhard Münchhagen. Spielanleitung

Statuten in leichter Sprache

teamsync Kurzanleitung

Das Seminar ist eine Prüfungsleistung für Bachelor und Masterstudierende der Informatik!

8. Berechnung der kalkulatorischen Zinsen

EasyWk DAS Schwimmwettkampfprogramm

Erstellen einer digitalen Signatur für Adobe-Formulare

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Algorithmen und Datenstrukturen. Große Übung vom Nils Schweer

ratgeber Urlaub - Dein gutes Recht

V o r w o r t. A n l e i t u n g

Benutzerhandbuch - Elterliche Kontrolle

Softwarelösungen: Versuch 4

Dokumentenverwaltung

Elexis-BlueEvidence-Connector

Kurzanleitung fu r Clubbeauftragte zur Pflege der Mitgliederdaten im Mitgliederbereich

Kundenspezifische Preise im Shop WyRu Online-Shop

Zeichen bei Zahlen entschlüsseln

COMPUTERIA VOM SERIENBRIEFE UND ETIKETTENDRUCK

Transkript:

8. Synchronisations-Verfahren Die verschiedenen Synchronisationsverfahren unterscheiden sich i.w. dadurch, wie sie die Einhaltung des Serialisierbarkeitsprinzips gewährleisten wann die Prüfung auf Serialisierbarkeit vorgenommen wird was die äquivalente serielle Ausführungsreihenfolge bestimmt. 8.1 Sperrverfahren Prinzip: Jedes Datenobjekt wird vor dem Zugriff mit einer geeigneten Sperre belegt Definition 8-1: Zwei-Phasen-Sperrprotokoll (PL-Protokoll) Eine Transaktion beachtet das PL-Protokoll genau dann, wenn sie 1. jedes Datenbankobjekt, das sie zur Ausführung benötigt, vor dem Zugriff mit einer (geeigneten) Sperre belegt. keine Sperren mehr anfordert, sobald sie einmal eine Sperre freigegeben hat. 8. Synchronisationsverfahren 8-1

Eine nicht-serialisierbare Ausführungsreihenfolge wird dadurch erkannt bzw. verhindert, daß ggf. mehrere Transaktionen zyklisch auf die Freigabe einer Sperre warten, die von einer anderern Transaktion gehalten wird. Die äquivalente serielle Ausführungsreihenfolge wird beim PL durch den jeweiligen "Lock-all -Point" der Transaktionen definiert. Die Implementierung der Sperren erfolgt mittels einer Sperrtabelle. Im Prinzip zwei Vorgehensweisen möglich: zentrales Sperren mittels zentraler Sperrtabelle verteiltes Sperren mittels dezentraler Sperrtabellen starte T T" Sub-Transaktion Knoten A starte Sub-Transaktion sperre Objekt a für T Knoten C sperre Objekt c für T" T' sperre Objekt b für T' Lock Manager Knoten B Knoten D Abb. 8-1: Sperren mittels zentraler Sperrtabelle 8. Synchronisationsverfahren 8-

Lock Manager sperre a T starte Sub-Transaktion Knoten A starte Sub-Transaktion T" sperre c T' Lock Manager sperre b Lock Manager Knoten C Knoten B Abb. 8-: Sperren mit dezentralen Sperrtabellen 8. Synchronisationsverfahren 8-3

8. Optimistische Synchronisationsverfahren Drei Phasen: Lesephase: ungeschütztes Lesen Vorbereitung von Änderungen auf lokalen Kopien Validationsphase: kritischer Abschnitt Prüfung, ob "dirty reads" bzw. "veraltetes Lesen" vorgekommen ist Austritt 1 auf Validationsphase definiert die äquivalente serielle Ausführungsreihenfolge. Schreibphase: Einbringung der Änderungen in die Datenbank. Lesephase Validationsphase Schreibphase Die Schreibphase muß im verteilten Fall mittels Zwei-Phasen- Commit koordiniert werden, sonst Gefahr nicht-serialisierbarer globaler Schedules. Deshalb: Eintritt in die Validationsphase muß zwischen den beteiligten Teiltransaktionen koordiniert werden Teiltransaktionen müssen lokal in derselben Reihenfolge in Bezug auf andere Transaktionen validieren. 1 Da die Validationsphase jeweils exklusiv durchlaufen wird, kann man genausogut den Eintrittszeitpunkt oder einen beliebigen Zeitpunkt zwischen Eintritt und Austritt wählen. 8. Synchronisationsverfahren 8-4

8.3 Andere Synchronisations-Verfahren Ansatzpunkt (i.d.r.): Verringerung bzw. Vermeidung des Aufwandes für die Synchronisation bzw. die Deadlock-Suche Geringerer Aufwand wird in der Regel erreicht durch Inkaufnahme an sich unnötiger Transaktions-Abbrüche Verschiedene Ansätze: Verklemmungs-vermeidende Sperr-Verfahren Zeitstempelbasierte Verfahren 8.3.1 Verklemmungsvermeidende Sperrverfahren Definition von Regeln, wann eine Transaktion bei Sperr- Konflikten auf eine andere Transaktion wartet 3 Fordere T i eine Sperre für ein Objekt an, das T j bereits gesperrt hat siehe z.b. Özsu/Valduriez, S. 6 ff. 3 Vgl. D. J. Rosenkrantz, R. E. Stearns, Ph. M. Lewis II: System Level Concurrency Control for Distributed Database Systems, ACM Transactions on Database Systems, Vol. 3, No., June 198, pp. 18-198 8. Synchronisationsverfahren 8-5

WAIT-DIE-Regel: if TS(T i ) < TS(T j ) then T i waits else T i dies D.h. Transaktion T i darf auf die Freigabe der Sperre nur dann warten, wenn sie "älter" als T j ist. Bei Abbruch (dann ist sie die "jüngere" Transaktion) wird T i mit der alten Zeitmarke erneut gestartet. Fall 1: T Fall : T 1 T 1 möchte sperren wait x hat gesperrt T möchte sperren die x hat gesperrt WOUND-WAIT-Regel: if TS(T i ) < TS(T j ) then T j is wounded else T i waits Wenn T j "verwundet" wird, wird T j abgebrochen und neu gestartet. Fall 1: T Fall : T 1 wound ( kill ) hat gesperrt hat gesperrt T 1 möchte sperren x T möchte sperren wait x 8. Synchronisationsverfahren 8-6

8.3. Zeitstempelbasierte Verfahren Synchronisations-Hilfsmittel: "Globale Uhr" Serialisierbarkeit der globalen Transaktionen in Zeitstempel (TS 4 )-Reihenfolge (BOT-TS-Reihenfolge) Echte globale Uhr i.a. nicht verfügbar Simulation einer globalen Uhr mittels lokaler Uhren Alternativen: Annahme, daß lokale Uhr - bis auf kleines - synchron laufen Laufender Abgleich und ggf. Aktualisierung der lokalen Uhren beim Empfang von Nachrichten "Eindeutigmachung" der "globalen Zeit" (falls erforderlich) durch Anhängen der KnotenID Ziel: Reine lokale Entscheidung, ob Lesen bzw. Ändern eines Objektes möglich ( Serialisierbarkeit) Basis: Transaktions- + objektbezogen Zeitstempel 4 TS = Timestamp 8. Synchronisationsverfahren 8-

Einfaches Zeitstempelverfahren: 5 Zwei Zeitstempel je Objekt x: Lese-Zeitstempel: TSR(x) := max { TS(t) Transaktion t hat lesend auf x zugegriffen } Schreib-Zeitstempel: TSW(x) := max { TS(t) Transaktion t hat schreibend auf x zugegriffen } Algorithmus 8-1: Einfaches Zeitstempelverfahren Transaktion T will auf Objekt x zugreifen: CASE action OF read: IF TS(T) < TSW(x) THEN reject read ELSE BEGIN führe read aus; TSR(x) := max { TSR(x), TS(T) } END; write: IF TS(T) < max { TSR(x), TSW(x) } THEN reject write ELSE BEGIN führe write aus; TSW(x) := TS(T) END; END CASE; 5 Verschiedene Varianten möglich, vgl. hierzu Ph. A. Bernstein, N. Goodman: Concurrency Control in Distributed Database Systems, ACM Computing Surveys, Vol. 13, No., June 1981, pp. 184-1 8. Synchronisationsverfahren 8-8

Anmerkungen: Gültiges Lesen (nicht "zu neu") eines Objektes wird dadurch gewährleistet, daß die BOT-TS der Transaktion stets dem Schreib-Zeitstempel des Objektes sein muß Beim Schreiben eines Objektes (Update) muß der Transaktions-TS sowohl größer als der Lese- als auch größer als der Schreib-Zeitstempel des Objektes sein Hierdurch wird sowohl gegen Leser als auch gegen Schreiber korrekt synchronisiert Nur-Lese-Transaktionen können Update-Transaktionen hierdurch jedoch zum "Absturz" bringen, auch wenn keine Verklemmung vorliegt Einbringung der Änderungen muß "en bloc" und exklusiv am Transaktionsende erfolgen, sonst Gefahr des kaskadierenden Zurücksetzens 8. Synchronisationsverfahren 8-9

Erweitertes Zeitstempelverfahren: Wie vorher, jedoch Absicherung der "Schreib-Phase" Ansatz: Einführung von "Sperr-Aktionen" (lock) lock(x) entspricht einer exklusiven Sperre auf x Werden alle Sperr-Aktionen akzeptiert, so werden die anschließenden Schreib-Aktionen ebenfalls akzeptiert Während der Sperrung von Objekt x eintreffende Read-, Writeund Lock-Aktionen für x werden blockiert read_queue(x) write_queue(x) lock_queue(x) 8. Synchronisationsverfahren 8-10

Algorithmus 8-: Erweitertes Zeitstempelverfahren CASE action OF read: IF TS(T) < TSW(x) THEN reject read ELSE IF lock_queue TS(T) > min { TS(T') T' lock_queue(x) } THEN füge read in read_queue(x) ein ELSE BEGIN führe read aus; TSR(x) := max { TSR(x), TS(T) } END; lock: IF TS(T) < max { TSR(x), TSW(x) } THEN reject lock ELSE füge lock in lock_queue(x) ein; write: lr_queue(x) ::= lock_queue(x) read_queue(x); IF TS(T) > min { TS(T') T' lr_queue(x) } THEN füge write in write_queue(x) ein ELSE BEGIN führe write aus; entferne korrespond. lock aus lock_queue(x) TSW(x) := TS(T); teste read_queue(x) und write_queue(x) auf ausführbare Aktionen; END; END CASE; 8. Synchronisationsverfahren 8-11

Anmerkungen: Zur Read-Aktion: Der Zeitstempel der Read-Aktion muß grundsätzlich aktuell in bezug auf den Schreib-Zeitstempel des Objektes sein (wie beim einfachen Verfahren) Ob die Read-Aktion sofort oder verzögert ausgeführt wird, hängt davon ab, ob für dieses Objekt bereits ein Lock-Request mit niedrigerem Zeitstempel vorliegt. In diesem Fall wird das Lesen verzögert (und der Read-Request in die read_queue eingefügt), andernfalls wird das Lesen sofort ausgeführt Zur Lock-Aktion: Wie der Write-Zeitstempel beim einfachen Verfahren muß der Lock-Zeitstempel in bezug auf beide Objekt-Zeitstempel aktuell sein. Analog zu einer "Sperre" führt die Lock-Aktion keine Objekt- Veränderungen durch, sondern wird lediglich beim Objekt eingetragen Die lock_queue entspricht damit einer lock_request_queue beim Zwei-Phasen-Sperren Zur Write-Aktion: Da - analog zum exklusiven Sperren - die entsprechende Schreib-Aktion vom Scheduler stets akzeptiert wird, geht es hier nur noch darum, ob das Schreiben sofort ausgeführt oder verzögert wird. Das Schreiben wird stets dann verzögert, wenn noch locks oder reads mit kleinerer Zeitmarke vorliegen, die zunächst abgearbeitet werden müssen. Nach Ausführung der Schreib-Aktion wird die exklusive Sperre aufgehoben (d.h. es erfolgt die Entnahme aus der lock_queue). 8. Synchronisationsverfahren 8-1

Evtl. werden hierdurch andere Aktionen ausführbar. Beispiel 8-1 zum erweiterten Verfahren: Gegeben seien die folgenden Transaktionen: T 1 : read 1 [x] lock 1 [x] write 1 [x] T : read [x] lock [x] write [x] T 3 : read 3 [y] lock 3 [x] write 3 [x] Es ergebe sich folgende Schedule: 1 read 1 [x] read 3 [y] lock 1 [x] 3 read [x] 4 write 1 [x] 5 6 lock [x] 8 lock 3 [x] write 3 [x] 9 write [x] 10 Zeit Abb. 8-3: Mögliche Schedule für Aktionen von T 1.. T 3 8. Synchronisationsverfahren 8-13

Entwicklung der Zeitstempelwerte für Objekt x: Zeitpunkt TSR read_queue lock_queue TSW write_queue 0 0 0 1 1 { 1 } 3 { } 4 1 5 6 { } {, 3 } 8 { 3 } 9 { 3 } 10 3 Anmerkungen: Ohne Betrachtung von (Zwei-Phasen)-Commit bei EOT Das einfache und das erweiterte Zeitstempel-Verfahren sind nicht ganz so mächtig (# möglicher Schedules) wie das Zwei- Phasen-Sperren. Es sind jedoch weitere Verbesserungen möglich, so daß auch Schedules erzeugbar sind, die bei Zwei-Phasen-Sperren nicht erzeugbar wären, eine direkte Vergleichbarkeit der Mächtigkeit ist jedoch nicht gegeben. 6 Mit Betrachtung von (Zwei-Phasen-)Commit Zwei-Phasen-Sperren besser. 6 Vgl. P. Dadam: Synchronisation und Recovery in verteilten Datenbanken: Konzepte und Grundlagen. Dissertation, FernUniversität Hagen, 199 8. Synchronisationsverfahren 8-14

8.3.3 Semantische Synchronisationsverfahren Erhöhung der Parallelität durch Einführung kommutativer ("semantischer") DB-Operationen als Einheit für die Synchronisation Beispiel 8-: Zwei Kontobuchungen auf den Konten K 1 und K durch die Transaktionen T 1 und T, die kommutative Operationen erhöhe um x und vermindere um x verwenden, könnten z. B. in den Reihenfolgen Schedule S 1 Schedule S 1. erhöhe(t 1,K 1,x 1 ). vermindere(t 1,K,x 1 ) 3. erhöhe(t,k 1,x ) 4. vermindere(t,k,x ) 1. erhöhe(t 1,K 1,x 1 ). erhöhe(t,k 1,x ) 3. vermindere(t 1,K,x 1 ) 4. vermindere(t,k,x ) ausgeführt werden. Schedule S 1 wäre auch mit rein syntaktischen Verfahren erzeugbar: < r 1 [K 1 ] w 1 [K 1 ] r 1 [K ] w 1 [K ] r [K 1 ] w [K 1 ] r [K ] w [K ] >. erhöhe(t 1,K 1,x 1 ) vermindere(t 1,K,x 1 ) erhöhe(t,k 1,x ) vermindere(t,k,x ) Schedule S wäre hingegen mit rein syntaktisch arbeitenden Verfahren nicht erzeugbar. 8. Synchronisationsverfahren 8-15

8.4 Erkennung und Auflösung von Verklemmungen Alternativen: Vorgabe von Zeitschranken ("time out") verklemmungsvermeidende Verfahren optimistische Verfahren (siehe Abschnitt 8.) verklemmungsvermeidende Sperrverfahren (siehe Abschnitt 8.3.1) Zeitstempelverfahren (siehe Abschnitt 8.3.) explizite Analyse auf Verklemmungen (Deadlocksuche; deadlock detection) T 1 wartet auf T' 3 wartet auf T 3 wartet auf wartet auf T T" Knoten A wartet auf wartet auf Knoten B T' Knoten C Abb. 8-4: Beispiel für globale Verklemmung 8. Synchronisationsverfahren 8-16

8.4.1 Zentralisierte Deadlock-Suche Erstellung einer globalen Wartet-auf-Matrix (WA-Matrix) an einem ausgewählten Knoten Deadlock-Suche und Auflösung wie im zentralen Fall 8.4. Dezentrale Deadlock-Suche Dezentrale (verteilte) Deadlock-Suche: Im Prinzip nehmen alle Knoten am Suchprozeß teil WA-Information wird oft weiter vergröbert, um Kommunikationsaufwand zu sparen z.b. T global,1 T lokal T global, wird oft reduziert zu: T global,1 T global, Dadurch jedoch Gefahr von Pseudo-Verklemmungen ( unnötige Zurücksetzungen) 8. Synchronisationsverfahren 8-1

Mögliche Vorgehensweise: Jeder lokale WAG enthält genau einen externen Ein-/Ausgang ( ) Externe WA-Beziehungen werden bzgl. lokalem formuliert T 1 T' 3 T 3 T 1 T' 3 T 3 T T" T T" Knoten A Knoten A T' Knoten B T' Knoten B Knoten C Knoten C Abb. 8-5: "Echter" globaler WAG Abb. 8-6: Lokale WAGs Kritisch sind Zyklen der Form..., da sie auf einen möglichen globalen Deadlock hinweisen Information über solche Zyklen werden anderen Knoten verschickt ( String) Beispiel: T 1 T T 5 wird zum String: ",1,,5" In Anlehnung an das Verfahren von R. Obermark: Distributed Deadlock Detection Algorithm. ACM Transaction on Database Systems, June 198, Vol., No., pp. 18-08 8. Synchronisationsverfahren 8-18

Algorithmus 8-3: "Distributed Deadlock Detection" (DDD) 1. Konstruiere den lokalen WAG (wie eben beschrieben). Gehe zu Schritt 5. Falls Strings und Deadlock-Information von anderen Knoten eintreffen, so werden sie im lokalen WAG wie folgt berücksichtigt: a. Alle Knoten und Kanten von Deadlock-Opfern werden aus dem WAG entfernt. b. Alle Strings, die ein bereits bekanntes Deadlock-Opfer enthalten, werden ignoriert. c. Noch nicht bekannte Transaktionen werden eingefügt. d. Für die im String enthaltenen Nachfolger-Transaktionen werden im WAG ggf. Pfeile hinzugefügt. 3. Füge für jede Transaktion T im WAG, auf deren Nachricht eine nicht-lokale Transaktion wartet, dem WAG eine T - Kante hinzu (sofern noch nicht vorhanden). 4. Füge für jede Transaktion T' im WAG, die auf eine Nachricht einer nicht-lokalen Transaktion wartet, dem WAG eine T' - Kante hinzu (sofern noch nicht vorhanden). 5. Analysiere den WAG und erstelle eine Liste aller elementaren Zyklen (im folgenden kurz Zyklenliste genannt). Die nachfolgenden Schritte beziehen sich nur noch auf die Zyklenliste: 6. Ermittle alle Zyklen in der Zyklenliste, die nicht den Knoten enthalten, und wähle daraus jeweils eine Transaktion T v als Deadlock-Opfer aus. 8. Synchronisationsverfahren 8-19

. Entferne T v (falls vorhanden) aus dem WAG sowie alle Kanten, die von T v ausgehen oder in T v einmünden. Entferne alle Strings (und die darauf basierenden Zyklen), die T v enthalten. 8. Informiere (falls T v eine globale Transaktion war) die anderen Knoten über das Zurücksetzen von T v. In der Zyklenliste sind jetzt nur noch Zyklen mit enthalten: 9. Ermittle die Zyklen T i... T j in der Zyklenliste für die gilt: Zykluslänge > und TransID(T i ) > TransID(T j ) 8. a. Transformiere diese Zyklen in einen String (wie oben beschrieben). b. Sende den String zu dem Knoten, auf dessen Nachricht die letzte Transaktion im String wartet. Gehe zu Schritt. 8 Es werden also keine Strings der Form ",1,3,4,..." erzeugt (zur Vermeidung von Mehrfach- Übertragungen). Bei der Berechnung der Zykluslänge werden die -Knoten jeweils nur einfach gezählt. 8. Synchronisationsverfahren 8-0

Beispiel 8-3: Gegeben sei folgende globale "Wartet-auf"-Situation: T 1 T ' T 3 Knoten A T " T 6 T T 3 ' T 4' T 4 T T ' Knoten B T 8' T 8 Knoten C Abb. 8-: Im Beispiel unterstellte globale WA-Situation Anmerkungen zu Abb. 8- : T " habe bereits den RtC-Zustand erreicht und warte nun auf die COMMIT- oder ABORT-Meldung von T ' T ' müsse ein Objekt exklusiv sperren warte auf die Freigabe der von T 3 und T " gehaltenen Lesesperren für dieses Objekt (analoges gilt für T 4 ' bzgl. T und T 6 sowie für T ' bzgl. T 3 ' und T 8 ) 8. Synchronisationsverfahren 8-1

Bei Reduzierung auf Beziehungen zwischen den globalen Transaktionen (als Ganzes) ergibt sich folgendes Bild: T4 T 6 T1 T T 3 T T 8 Abb. 8-8: WAG bei zentraler Deadlock-Erkennung Elementare Zyklen: 9 T T 3 T 4 T Z1) T T T 3 T 4 T T T 8 T (Z) (Z3) 9 Der Zyklus T T T 8 T T 3 T 4 T ist kein elementarer Zyklus, sondern ergibt sich durch Zusammensetzung aus den Zyklen (Z1) und (Z3) 8. Synchronisationsverfahren 8-

Knoten A Knoten B Knoten C 1. Input: Deadlocksuche! Input: Deadlocksuche! Input: Deadlocksuche! 8 8 4 1 3 4 6 3 Analyse:,,3,,,, Output: -- 10 Analyse:,4,,,8,, Output:,4,,8, A C Analyse:,3,4,,,8,,,3,4, Output:,,3,4 B Abb. 8-9: Deadlockerkennung 1. Iteration 10 Wird nicht verschickt, da TransID first < TransID last (siehe Regel 9 des DDD-Algorithmus ). 8. Synchronisationsverfahren 8-3

. Input: B:,4, Knoten A Knoten B Knoten C Input: C:,,3,4 Input: B:,8, 4 8 8 4 1 3 3 4 6 3 Analyse:,,3,,,,,4,,3,,4,,, Analyse:,4,,,,,,3,4,,,8,,,8,,3,4,, Analyse:,3,4, (,,8, ) 11,,3,4, (,8, ) (,8,,3,4, ) (,8, ) Zyklus! Opfer = 8 8 4 3 4 3 Output:,4,,3 C Output:,4, A 1,,3,4, A,8,,3,4, A,8, C Output:,,3,4 B Opfer = 8 A, B Abb. 8-10: Deadlockerkennung. Iteration 11 ( ) steht für: Zyklus durch Wahl eines Opfers für Transaktionsabbruch aufgelöst. 1 steht für: Braucht nicht mehr verschickt zu werden, da bereits schon einmal verschickt. 8. Synchronisationsverfahren 8-4

Knoten A Knoten B Knoten C 3. Input: B:,,3,4, B:,8,,3,4, 13 C: Opfer = 8 Input: C: Opfer = 8 Input: A:,4,,3 4 8 4 1 3 3 4 6 3 3 4 6 Analyse: (,,3, ),,, (,,,3, ) (,4,,3, ),4,,, (,4,,,3, ) (,,3, ),, (,3,4, ) Zyklus! (,,3,4, ) Zyklus! Opfer = 3 Analyse:,4,,,,,,3,4,, Analyse: (,3,4, ),4, (,,3,4, ) (,3,4, ) Zyklus! Opfer = 3 4 4 1 3 3 Output: Opfer = 3 B, C Output:,,3,4,,4, A A Output: Opfer = 3 A, B Abb. 8-11: Deadlockerkennung 3. Iteration 13,... steht für Input-String wird ignoriert, da Deadlock-Opfer darin enthalten. 8. Synchronisationsverfahren 8-5

Knoten A Knoten B Knoten C 4. Input: C: Opfer = 3 Input: A: Opfer = 3 C: Opfer = 3 Input: A: Opfer = 3 4 4 1 3 4 6 4 6 Analyse:,,,,4,,,,, Analyse:,4,,,, Analyse:,4, Output: -- Output: -- Output: -- Abb. 8-1: Deadlockerkennung 4. Iteration Im 4. Iterationssschritt findet keiner der Knoten mehr einen zu versendenden String und die Deadlocksuche ist damit beendet. Anmerkung: Man kann zeigen, daß der DDD-Algorithmus einen Zyklus, in N* (N 1) dem N Knoten involviert sind, in maximal Schritten findet. 14 14 siehe hierzu R. Obermark: Distributed Deadlock Detection Algorithm. ACM Transaction on Database Systems, June 198, Vol., No., pp. 18-08 8. Synchronisationsverfahren 8-6

Übungsaufgabe 8-1: Deadlocksuche Gegeben seien die folgenden Transaktionen mit den dargestellten WA- Beziehungen. Führen Sie eine Deadlocksuche mit dem DDD-Algorithmus durch. T ' 9 Knoten A T 9 Knoten B T3 T 1 T ' 1 T 8' T " 5 T 5 T ' T 4 T 8 T ' 5 T T ' 4 T T 6 Knoten C Abb. 8-13: Globale WA-Situation Musterlösung siehe P. Dadam: Verteilte Datenbanken und Client/Server-Systeme. 8. Synchronisationsverfahren 8-

8.5 Ergänzende Literatur P. Dadam: Verteilte Datenbanken und Client/Server-Systeme,... Gray, Reuter (siehe Basis-Literatur) Özsu, Valduriez (siehe Basis-Literatur) Ceri, Pelagatti (siehe Basis-Literatur) P. Dadam: Synchronisation in verteilten Datenbanken: Ein Überblick, Informatik-Spektrum, Teil 1: Band 4, 1981, S. 15-184, Teil : Band 4, 1981, S. 61-0 8. Synchronisationsverfahren 8-8