Datenbanken und Informationssysteme



Ähnliche Dokumente
Übungen zur Vorlesung. Mobile und Verteilte Datenbanken. WS 2008/2009 Blatt 4. Lösung

Datenbanken: Ablaufpläne und Serialisierbarkeit

Konfliktgraph. Satz und Definition

Datenbanksysteme 2009

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann

Übungen zur Vorlesung. Datenbanken I. WS 2002/2003 Blatt 4 MUSTERLÖSUNG

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann

Transaktionen und Synchronisation konkurrierender Zugriffe

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

Prioritäten/Zeitstempel-Verfahren

Prioritäten/Zeitstempel-Verfahren. WAIT-DIE und WOUND-WAIT-Strategien

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Transaktionskonzept Eine Transaktion ist eine Folge von Operationen mit folgenden ACID Eigenschaften: Atomicity: Es werden alle Operationen oder gar k

Serialisierbarkeit von Historien: Minimalanforderung bzgl. "akzeptabler" Synchronisation

Software-Engineering und Datenbanken

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

Mehrbenutzersynchronisation

Vorlesung Datenbanksysteme Univ.-Prof. Dr. Günther Specht. Universität Innsbruck Institut für Informatik Datenbanken und Informationssysteme (DBIS)

Beispielszenarien. 12. Transaktionen. ACID-Eigenschaften. Transaktion

Aufgabe 10.1: Lösung:

Datenbanken 1. Sommersemester Übung 8

Grundlagen von Datenbanken. Referentielle Aktionen, Sichten, Serialisierbarkeit und Locking

Datenbanken 1. Sommersemester Übung 8

Kapitel 3 Synchronisation

Kapitel 5 Mehrversionen-CC. MVCC: Annahmen & Eigenschaften

Synchronisation in Datenbanksystemen in a nutshell

Teil II Concurrency Control. Kapitel 2 Serialisierbarkeitstheorie

DB I S. 1 Referentielle Aktionen [10 P.] Gegeben sei folgende Datendefinition:

8. Transaktionsverarbeitung. Architektur von Datenbanksystemen I

Mehrbenutzersynchronisation

Übung Datenbanksysteme I Transaktionen, Selektivität, XML

Randomisierte Algorithmen

Deadlocks. System hat nur begrenzte Ressourcen (Ressourcentypen) Hauptspeicher Externer Speicher Drucker File

2. Repräsentationen von Graphen in Computern

Koordination des Mehrbenutzerbetriebs 9. Koordination des Mehrbenutzerbetriebs

1 Referentielle Aktionen

5. Bäume und Minimalgerüste

Mehrbenutzersynchronisation

Transaktionsmanagement - Einführung. Prof. Dr. T. Kudraß 1

Seien u, v V, u v. Da G zusammenhängend ist, muss mindestens ein Pfad zwischen u und v existieren.

8. Synchronisations-Verfahren

Flüsse in Netzwerken

KAPITEL 6 GANZZAHLIGE OPTIMIERUNG UND VOLLSTÄNDIG UNIMODULARE MATRIZEN

Mehrbenutzersynchronisation

Systeme I: Betriebssysteme Kapitel 6 Deadlocks. Wolfram Burgard

Konflikte. Konflikt-Äquivalenz von Read/Write-Plänen, Konflikt-Serialisierbarkeit

6. Serialisierbarkeit

5. Transaktionsverarbeitung

6. Serialisierbarkeit 1

Datenbanksysteme I Transaktionsmanagement Felix Naumann

Einführung in die Informatik 2

Kommunikation und Datenhaltung

Eigenschaften von TAs: ACID-Prinzip

Diskrete Strukturen Kapitel 4: Graphentheorie (Grundlagen)

Kapitel 3 Teil 2 Synchronisation - Algorithmen I

Scheduler. vereinfachende Annahmen: alle Transaktionen werden wirksam nur Konflikt-Serialisierbarkeit keine Versionen

2.3 View Serialisierbarkeit

Mehrbenutzer-Synchronisation

Betriebssysteme I WS 2013/2014. Betriebssysteme / verteilte Systeme Tel.: 0271/ , Büro: H-B 8404

6. Transitive Hülle. 6.1 Min-Plus-Matrix-Produkt und Min-Plus-Transitive Hülle Ring Z(+, ) Semiring N(+, )

IT-Kompaktkurs. Datenbanken Skript zur Folge 4. Prof. Dr. Manfred Gruber Fachhochschule München

Schulbesuch Erich-Kästner Gesamtschule 07. April 2011

Lineare Differenzengleichungen

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

Datenintegrität und Transaktionskonzept

Datenbanken: Transaktionskonzept und Concurrency Control

Betriebssysteme - Deadlocks

Mehrbenutzer-Synchronisation

Kapitel 4. Reihen 4.1. Definition und Beispiele

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

Algorithmen II Vorlesung am

Transkript:

Datenbanken und Informationssysteme Serialisierbarkeit Burkhardt Renz Fachbereich MNI TH Mittelhessen Wintersemester 2015/16

Übersicht Serialisierbarkeit 2-Phasen-Sperrprotokoll (2PL) Verklemmungen

Modell einer Datenbank Datenobjekte x, y, z... Aktionen rpxq lese Datenobjekt x (read) wpxq schreibe Datenobjekt x (write) c bestätige Transaktion (commit) a breche Transaktion ab (abort) Transaktion ist Folge solcher Aktionen: rpxq; wpxq; rpyq; wpzq; c

Aktionen mehrerer Transaktionen T 1 fl r 1 pxq; w 1 pxq; r 1 pyq; w 1 pyq T 2 fl r 2 pxq; w 2 pxq Der Index gibt an, welche Transaktion die Aktion durchführt.

Verschränkung von Transaktionen Drei Abläufe S 1, S 2 und S 3 mit den beiden Transaktionen: S 1 fl r 1 pxq; w 1 pxq; r 1 pyq; w 1 pyq; r 2 pxq; w 2 pxq S 2 fl r 1 pxq; r 2 pxq; w 1 pxq; r 1 pyq; w 2 pxq; w 1 pyq S 3 fl r 1 pxq; w 1 pxq; r 2 pxq; w 2 pxq; r 1 pyq; w 1 pyq

Serielle Abläufe Definition Ein Ablauf heißt seriell, wenn alle Schritte einer Transaktion vollständig ausgeführt werden, ehe die der nächsten Transaktion beginnen. Beispiel Der Ablauf S 1 ist seriell, die beiden Transaktionen folgen zeitlich aufeinander.

Konflikt zwischen Aktionen Definition Zwei Aktionen in einem Ablauf stehen in Konflikt, wenn gilt (1) sie gehören zu unterschiedlichen Transaktionen (2) sie greifen auf dasselbe Datenobjekt zu (3) mindestens einer der Aktionen ist write Beispiel r 1 pxq und w 2 pxq stehen in Konflikt r 1 pxq und r 2 pxq stehen nicht in Konflikt (beide lesend) w 1 pyq und w 2 pxq stehen nicht in Konflikt (unterschiedliche Datenobjekte)

Konfliktäquivalenz Definition Zwei Abläufe heißen konfliktäquivalent, wenn die Reihenfolge von allen Paaren von in Konflikt stehenden Aktionen in beiden Abläufen gleich ist. Beispiel S 1 und S 2 sind nicht konfliktäquivalent S 1 und S 3 sind konfliktäquivalent

Konfliktserialisierbarkeit Definition Ein Ablauf heißt konfliktserialisierbar, wenn er zu einem seriellen Ablauf konfliktäquivalent ist. Beispiel S 1 ist seriell, also konfliktserialisierbar S 2 ist nicht serialisierbar S 3 ist serialisierbar, weil konfliktäquivalent zu S 1

Präzedenzgraph Fragestellung Kriterium für Serialisierbarkeit Definition Der Präzedenzgraph zu einem Ablauf S ist ein gerichteter Graph G S mit (1) den Knoten T 1, T 2,... für jede Transaktion T i in S (2) den Kanten T i Ñ T j falls T i und T j konfligierende Aktionen haben, bei denen die Aktion in T i vor der in T j in S vorkommt.

Beispiele für den Präzedenzgraphen Beispiel Präzedenzgraphen zu unseren Beispielabläufen: S 1 fl r 1 pxq; w 1 pxq; r 1 pyq; w 1 pyq; r 2 pxq; w 2 pxq T 1 T 2 S 2 fl r 1 pxq; r 2 pxq; w 1 pxq; r 1 pyq; w 2 pxq; w 1 pyq T 1 T 2 S 3 fl r 1 pxq; w 1 pxq; r 2 pxq; w 2 pxq; r 1 pyq; w 1 pyq T 1 T 2

Kriterium für Serialisierbarkeit Satz (Kriterium für Serialisierbarkeit) Ein Ablauf S ist genau dann (konflikt-)serialisierbar, wenn sein Präzedenzgraph G S keinen Zyklus hat. Beweis. ñ) Widerspruchsbeweis ð) Induktion über die Zahl der Transaktionen

Übersicht Serialisierbarkeit 2-Phasen-Sperrprotokoll (2PL) Verklemmungen

Modell binärer Sperren Wir verwenden folgendes Modell für Sperren auf Datenobjekten: Binäre Sperren l i pxq Transaktion T i erwirkt eine Sperre auf Datenobjekt x (lock) u i pxq Transaktion T i gibt seine Sperre auf dem Datenobjekt x frei (unlock)

Protokoll binärer Sperren Verhalten der Transaktionen 1 Eine Transaktion muss vor Lese- oder Schreibaktion auf ein Datenobjekt x eine Sperre auf x anfordern. 2 Eine Transaktion muss eine Sperre auf x freigeben, wenn sie keine Aktionen mit x mehr durchführen will. Verhalten des Systems 1 Die Anforderung l i pxq von T i wird nur ausgeführt, wenn keine andere Transaktion eine Sperre auf x hält, andernfalls muss T i warten. 2 Wird eine Freigabe eines Datenobjekts ausgeführt, werden alle darauf wartenden Transaktionen wieder angestoßen.

Sperren und Serialisierbarkeit Bemerkung Das Befolgen dieses Protokolls garantiert Serialisierbarkeit nicht. Beispiel l 1 pxq; w 1 pxq; u 1 pxq; l 2 pyq; w 2 pyq; u 2 pyq; l 1 pyq; w 1 pyq; u 1 pyq; l 2 pxq; w 2 pxq; u 2 pxq;

2-Phasen-Lock-Protokoll Definition Eine Transaktion folgt dem 2-Phasen-Sperrprotokoll (2PL), wenn alle Sperraktionen in der Transaktion vor der ersten Freigabeaktion ausgeführt werden. Die erste Phase, in der Sperren angefordert werden, nennt man die Wachstumsphase. Die zweite Phase, in der nur noch Freigabe von Sperren erfolgen, nennt man die Schrumpfungsphase.

Striktes 2PL Definition Eine Transaktion folgt dem strikten 2PL, wenn sie dem 2PL folgt und alle Sperren en bloc am Ende der Transaktion freigibt. Bemerkung Ein Ablauf nach dem 2PL ist äquivalent zu einem Ablauf nach dem strikten 2PL. Begründung

2PL und Serialisierbarkeit Satz Ein Ablauf, in dem alle Transaktionen dem 2PL folgen, ist serialisierbar. Beweis. Induktion über die Zahl der Transaktionen Korollar Ein Ablauf nach dem 2PL ist äquivalent zu einem seriellen Ablauf in der Reihenfolge der Transaktionen wie sie beginnen, ihre Sperren freizugeben.

Übersicht Serialisierbarkeit 2-Phasen-Sperrprotokoll (2PL) Verklemmungen

2PL und Verklemmungen Bemerkung 2PL verhindert Verklemmungen nicht Beispiel T 1 fl l 1 pxq; r 1 pxq; w 1 pxq; l 1 pyq; u 1 pxq; r 1 pyq; w 1 pyq; u 1 pyq; T 2 fl l 2 pyq; r 2 pyq; w 2 pyq; l 2 pxq; u 2 pyq; r 2 pxq; w 2 pxq; u 2 pxq; Zeitlicher Ablauf: T 1 l 1 pxq; r 1 pxq w 1 pxq l 1 pyq... T 2 l 2 pyq; r 2 pyq w 2 pyq l 2 pxq...

Wartegraph Thema und Modell Thema: Erkennen und Auflösen von Verklemmungen (Deadlocks) Rahmen: Unser einfaches Modell mit binären Sperren Definition Der Wartegraph ist ein gerichteter Graph mit (1) die Knoten sind die Transaktionen (2) Zwei Knoten T und U sind durch eine gerichtete Kante verbunden, wenn T darauf wartet, dass U ein Datenobjekt freigibt. T U fl T wartet auf U

Beispiel Wartegraph Beispiel T 1, T 2, T 3 möchten folgende Abläufe machen: T 1 : l 1 pxq; r 1 pxq; l 1 pyq; w 1 pyq; u 1 pxq; u 1 pyq; T 2 : l 2 pzq; r 2 pzq; l 2 pxq; w 2 pxq; u 2 pzq; u 2 pxq; T 3 : l 3 pyq; r 3 pyq; l 3 pzq; w 3 pzq; u 3 pyq; u 3 pzq; Es entsteht z.b. folgender Ablauf in zeitlicher Reihenfolge: l 1 pxq; r 1 pxq; l 2 pzq; r 2 pzq; l 3 pyq; r 3 pyq; l 2 pxq; l 3 pzq; l 1 pyq; Ergebnis: T 2 wartet auf T 1 T 3 wartet auf T 2 T 1 wartet auf T 3

Wartegraph zum Beispiel T 1 T 3 T 2

Wartegraph und Verklemmungen Satz Es liegt genau dann eine Verklemmung vor, wenn der Wartegraph einen Zyklus hat. Bemerkung Der Wartegraph kann auf zwei Arten verwendet werden: 1 Deadlock-Erkennung 2 Deadlock-Vermeidung

Adjazenzmatrix des Wartegraphen Man repräsentiert den Wartegraphen gerne durch seine Adjazenzmatrix: Die Zeilen und Spalten der Matrix repräsentieren die Transaktionen T 1, T 2, T 3,..., T n und für ein Element w ij der Matrix gilt: # 1 falls T i Ñ T j w ij 0 sonst

Beispiel für die Adjazenzmatrix T 1 T 3 T 2» 0 0 fi 1 1 0 0fl 0 1 0

Algorithmus 1 Entferne alle Transaktionen, die an keinem Zyklus beteiligt sind, d.h. diejenigen, bei denen (a) die Zeile nur 0 enthält, oder (b) die Spalte nur 0 enthält. 2 Sind jetzt noch Transaktionen übrig, müssen sie an einem Zyklus beteiligt sind. Wähle ein Opfer und breche die Transaktion ab. Weiter mit Schritt 1.