Datenbanken: Ablaufpläne und Serialisierbarkeit

Ähnliche Dokumente
8. Transaktionsverarbeitung. Architektur von Datenbanksystemen I

6. Serialisierbarkeit 1

Datenbanken und Informationssysteme

Datenbanken: Transaktionskonzept und Concurrency Control

Software-Engineering und Datenbanken

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

7. Transaktionsmodelle. Transaktionen im Mehrbenutzerbetrieb

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

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

Inhaltsverzeichnis. Inhaltsverzeichnis

Übung Datenbanksysteme I Transaktionen, Selektivität und XML. Thorsten Papenbrock

Datenbanksysteme I Transaktionsmanagement Felix Naumann

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

Synchronisation in Datenbanksystemen in a nutshell

Mehrbenutzersynchronisation

Transaktionen und Synchronisation konkurrierender Zugriffe

Kapitel 3 Teil 1 Synchronisation / Korrektheit

Übungen zur Vorlesung. Datenbanken I

3.1 Schedules und Histories

Kapitel 3 Teil 2 Synchronisation - Algorithmen I

Beispiel: Bankensoftware. 6 Transaktionen. 6.1 Grundlagen Einführung und Begriffe. Transaktionen. Beispiel (Fortsetzung 1): Verzahnte Ausführung

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

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

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

Transaktionen. Michael Löwe 04/15/16. FHDW Hannover, Freundallee 15, Hannover address:

Mehrbenutzersynchronisation

Der Scheduler. 9. Transaktionsverwaltung. Zustände einer Transaktion. Transaktionsoperationen

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

Datenbanken: Backup und Recovery

Darunter versteht man die Anmeldung eines Benutzers beim System unter Angabe einer Benutzererkennung.

Proseminar Theoretische Informatik. Die Klasse NP. von Marlina Spanel

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

Mehrbenutzer-Synchronisation

Kapitel 10: Transaktionsverwaltung

Mehrbenutzer-Synchronisation

Kapitel 4: Synchronisation: Scheduler

Grundbegriffe der Informatik

Unzulänglichkeiten der ANSI-SQL-Isolationslevel [1] Intelligente Datenbanken

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Kapitel 3: Untere Schranken für algorithmische Probleme Gliederung

Konstruktion der reellen Zahlen

7. Synchronisation Algorithmen 1

Durchschnitt von Matroiden

4 Concurrency Control: Algorithmen. Ziel: Entwicklung von Schedulern (Scheduling Algorithmen, Scheduling Protokollen), die konfliktserialisierbare

Mehrbenutzersynchronisation

Grundbegriffe der Informatik

2. Synchronisation in DBS: Grundlagen, Sperrverfahren

Kapitel 12 Integrität der Datenbank

Kapitel 8: Transaktionen

Folglich besitzt die kanonische Faktorisierung von Permutationen der Ordnung 2 nur 2-Zykeln, also Transpositionen, als Elemente.

8. März: Klausurvorbereitung (Durchgehen Klausurähnlicher Aufgaben, Fragestunde)

Algorithmen und Datenstrukturen

Klausur zur Vorlesung Datenbanken I im Wintersemester 2011/12

Replikation und Synchronisation. in mobilen Datenbanksystemen

Literatur und Quellen. Datenbanken. Inhalt. Inhalt. Transaktionen. Nikolaus Augsten. Wintersemester 2013/14

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

Graphen und Bäume. A.1 Graphen

Teil III. Komplexitätstheorie

Notizen zu Transformationen und Permutationen. T (A) = {f : A A}

Was ist eine Transaktion?

Permutationen und symmetrische Gruppe

Datenintegrität und Transaktionskonzept

5. Äquivalenzrelationen

γ(a, γ(b, c)) = γ(γ(a, b), c)). γ(e, x) = γ(x, e) = x.

Czap, Grundlagen betrieblicher IS - 1

Kürzeste Wege in Graphen. Orte mit Straßenverbindungen. Coma I Rolf Möhring

Diplom Mathematiker Wolfgang Kinzner. 17. Oktober Technische Universität München. Die abc-formel. W. Kinzner. Problemstellung.

4 Greedy-Algorithmen (gierige Algorithmen)

Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph.

2. Teilbarkeit. Euklidischer Algorithmus

Grundlagen der Theoretischen Informatik

kontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung

LOOP-Programme: Syntaktische Komponenten

Kapitel 4: Minimal spannende Bäume Gliederung der Vorlesung

Datenbank- Implementierungstechniken

4 Transaktionen und Recovery

Kapitel 4: Minimale spannende Bäume Gliederung der Vorlesung

15. Elementare Graphalgorithmen

Lösungsvorschläge Blatt Z1

2. Repräsentationen von Graphen in Computern

1 Transaktionen in SQL. 2 Was ist eine Transaktion. 3 Eigenschaften einer Transaktion. PostgreSQL

6. Übung zur Linearen Optimierung SS08

Koordination des Mehrbenutzerbetriebs 9. Koordination des Mehrbenutzerbetriebs

Datenbanken und Informationssysteme Sommersemester 2012 Probeklausur

Anwendung v. symmetrischen Matrizen: Hauptachsentransformation

Bayes-Netze (1) Lehrstuhl für Künstliche Intelligenz Institut für Informatik Friedrich-Alexander-Universität Erlangen-Nürnberg

Übungsblatt Nr. 5. Lösungsvorschlag

Bäume und Wälder. Seminar: Graphentheorie Sommersemester 2015 Dozent: Dr. Thomas Timmermann

5. Woche Perfekte und Optimale Codes, Schranken. 5. Woche: Perfekte und Optimale Codes, Schranken 88/ 142

Eulerweg, Eulerkreis. Das Königsberger Brückenproblem. Definition 3.1. Ein Weg, der jede Kante von G genau einmal

1 Algebraische Grundbegriffe

Tag 4 Inhaltsverzeichnis








Datenstrukturen & Algorithmen

Transkript:

Theoretische Konzepte zur Abarbeitung parallel arbeitender Transaktionen Definition: (Ablaufplan, Schedule) Ein Ablaufplan S ist die verschränkte Anordnung bzw. Ausführung der Einzeloperationen einer Menge gegebener Transaktionen mit folgenden Einschränkungen: - Alle Operationen jeder beteiligten Transaktion sind genau einmal enthalten; - Die relative Reihenfolge der Einzeloperationen jeder Transaktion wird beibehalten. Definition: (vollständiger Schedule) Ein Ablaufplan S heißt vollständig, falls jede beteiligte Transaktion T nach der letzten Operation entweder ein commit (c) oder ein rollback oder abort (a) enthält. 1 T1 := r1(x); w1(x); T2 := r2(x); r2(y); w2(y); Ein Ablaufplan S: S : r1(x); r2(x); w1(x); r2(y); w2(y); Ein vollständiger Ablaufplan S: S : r1(x); r2(x); w1(x); c1; r2(y); w2(y); c2; 2

Definition: (serieller Schedule) Seien T1,, Tn Transaktionen, dann ist ein serieller Schedule ein vollständiger Schedule, der aus der Hintereinanderausführung der Transaktionen besteht: S: Tς(1),, Tς(n); wobei ς eine Permutation von { 1,, n } bezeichnet. also T1 := r1(x); w1(x); T2 := r2(x); r2(y); w2(y); S: r2(x); r2(y); w2(y); c2; r1(x); w1(x); c1; S: T2;T1 Definition: (serialisierbarer Schedule) Ein Schedule S heißt serialisierbar S ist äquivalent zu einem seriellen Schedule S! Wann sind zwei Schedules äquivalent? 3 Hier: äquivalent im Sinne von konflikt-äquivalent! Dazu: Definition: (Konflikt) Zwei Operationen p, q in einem Schedule S stehen in Konflikt <=> i) sie gehören zu verschiedenen Transaktionen ii) sie greifen auf das gleiche Datenobjekt x zu iii)p, q { r, w } und mindestens eine Operation ist eine write-operation Definition: (Konfliktrelation bzw. Konfliktmenge) conf(s) := { (p, q) p, q stehen im Konflikt und p kommt in S vor q } - { (p, q) p T oder q T und T abgebrochen } heißt Konfliktmenge bzw. Konfliktrelation des Schedule S 4

Beispiel1: S = r1(x); w1(x); c1; r2(x); r2(y); w2(x); r3(y); w2(y); w3(y); c2; conf(s) = { (r1(x), w2(x)), (w1(x), r2(x)), (w1(x), w2(x)), (r2(y), w3(y)), (r3(y), w2(y)), (w2(y), w3(y)) } Beispiel2: S = r1(x); w1(x); c1; r2(x); r2(y); w2(x); r3(y); w2(y); w3(y); a3; c2; conf(s) = { (r1(x), w2(x)), (w1(x), r2(x)), (w1(x), w2(x)) } 5 Definition: (konfliktäquivalent) Zwei Schedules S und S heißen konfliktäquivalent (im Zeichen: S c S ) i) S und S enthalten die gleichen Operationen inklusive c und a ii) conf(s) = conf(s ) S1 = r1(x); r2(x); w1(x); c1; r2(y); w2(y); w2(x); c2; S2 = r2(x); r1(x); r2(y); w1(x); c1; w2(y); w2(x); c2; S1 und S2 sind konfliktäquivalent, denn: S1 und S2 enthalten die gleichen Operationen und conf(s1) = conf(s2) = { (r1(x), w2(x)), (r2(x), w1(x)), (w1(x), w2(x)) } 6

Definition: (Konfliktserialisierbarkeit) Ein Schedule S heißt konfliktserialisierbar S ist konfliktäquivalent zu einem seriellen Schedule S. Ziel eines Transaktionsmanagers ist also, konfliktserialisierbare Ablaufpläne zu erstellen, soweit das möglich ist. Damit wäre das Isolation-Problem gelöst, denn das Ergebnis eines konfliktserialisierbaren Schedules ist dasselbe wie das eines seriellen Schedules, dessen Transaktionen alle hintereinander ausgeführt werden, so dass keine der klassischen Probleme auftreten können Wie kann überprüft werden, ob ein Schedule konfliktserialisierbar ist??? 7 Überprüfung auf Konfliktserialisierbarkeit mittels Konfliktgraphen: Definition: (Konfliktgraph) Sei S ein Ablaufplan. Der Konfliktgraph G(S) zu S ist wie folgt definiert: Die Knoten von G(S) sind die Transaktionen in S Zwischen 2 Knoten T i und T j wird eine gerichtete Kante T i -> T j gezogen genau dann, wenn es p T i und q T j gibt mit (p, q) conf(s) Gegeben sei der folgende Schedule: conf(s) ={ (r3(x), w1(x)), (r3(x), w2(x)), (r2(y), w1(y)), (r1(x), w2(x)), (r1(x), w3(x)), (w1(x), r2(x)), (w1(x), w2(x)), (w1(x), w3(x)), (r2(x), w3(x)), (w2(x), w3(x)) } 8

also: conf(s) ={ (r3(x), w1(x)), (r3(x), w2(x)), (r2(y), w1(y)), (r1(x), w2(x)), (r1(x), w3(x)), (w1(x), r2(x)), (w1(x), w2(x)), (w1(x), w3(x)), (r2(x), w3(x)), (w2(x), w3(x)) } Zugehöriger Konfliktgraph: T1 T2 T3 9 Noch einmal: conf(s) ={ (r3(x), w1(x)), (r3(x), w2(x)), (r2(y), w1(y)), (r1(x), w2(x)), (r1(x), w3(x)), (w1(x), r2(x)), (w1(x), w2(x)), (w1(x), w3(x)), (r2(x), w3(x)), (w2(x), w3(x)) } Zugehöriger Konfliktgraph (vereinfacht): T1 T2 T3 10

Zusammenhang zwischen Konfliktgraph und Serialisierbarkeit: Satz: a) Ist S serieller Schedule, dann enthält der zugehörige Konfliktgraph G(S) keinen Zykel! b) Zu jedem zykelfreien Konfliktgraphen G(S) kann ein serieller Schedule S konstruiert werden, s.d. S c S (hierzu existieren effiziente Algorithmen) c) Enthält ein Konfliktgraph Zyklen, ist der zugehörige Schedule nicht konfliktserialisierbar! Zur Überprüfung eines Schedules auf Konfliktserialisierbarkeit ist also die Aussage c) des Satzes sehr nützlich! 11 Noch einmal das Zugehöriger Konfliktgraph: T1 T2 T3 Der Konfliktgraph enthält Zykel, d.h. der Schedule S ist nicht konfliktserialisierbar!! 12

Anmerkung: Die Konflikte, die einen Zykel verursachen, müssen sich nicht auf das gleiche Datenelement (x oder y oder z) beziehen, d.h. an einem Zykel können mehrere Datenelemente beteiligt sein!! Den Zusammenhang zwischen Konfliktserialisierbarkeit und Sperren bzw. Sperrprotokollen liefert der folgende Satz: Satz: Das 2-Phasen-Sperrprotokoll ist eine hinreichende Bedingung für Konfliktserialisierbarkeit! Folgerungen: 1) Ein Ablaufplan S, der dem 2-Phasen-Sperrprotokoll genügt, ist konfliktserialisierbar! 2) Es kann auch Ablaufpläne geben, die nicht dem 2-Phasen-Sperrprotokoll genügen, und trotzdem konfliktserialisierbar sind! 13 Fazit: Es ist möglich, Schedules zu erstellen, die die Isolation-Bedingung der ACID-Bedingungen erfüllen, ohne Sperren anzuwenden (das sind die konfliktserialisierbaren Schedules!). Die Überprüfung, ob ein gegebener Schedule die Isolation-Bedingung erfüllt, d.h. konfliktserialisierbar ist, erfolgt über den Konfliktgraphen zu diesem Schedule: Enthält der Graph keine Zykel, ist die Isolation-Bedingung erfüllt! Der Zusammenhang zwischen Sperren und Serialisierbarkeit ist: Erfüllt S das 2-Phasen-Sperrprotokoll, dann ist S serialisierbar 14