Prof. Dr. Günter Brackly FB Informatik / MST Datenbanken: Ablaufpläne und Serialisierbarkeit 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 Prof. Dr. Günter Brackly FB Informatik / MST Datenbanken: Ablaufpläne und Serialisierbarkeit Beispiel: 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 Prof. Dr. Günter Brackly FB Informatik / MST Datenbanken: Ablaufpläne und Serialisierbarkeit 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. Beispiel: 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 Prof. Dr. Günter Brackly FB Informatik / MST Datenbanken: Ablaufpläne und Serialisierbarkeit 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 Prof. Dr. Günter Brackly FB Informatik / MST Datenbanken: Ablaufpläne und Serialisierbarkeit Beispiel1: S = r1(x); w1(x); c1; r2(x); r2(y); w2(x); r3(y); w2(y); w3(y); c3; 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 Prof. Dr. Günter Brackly FB Informatik / MST Datenbanken: Ablaufpläne und Serialisierbarkeit 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’) Beispiel: 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 Prof. Dr. Günter Brackly FB Informatik / MST Datenbanken: Ablaufpläne und Serialisierbarkeit 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 Prof. Dr. Günter Brackly FB Informatik / MST Datenbanken: Ablaufpläne und Serialisierbarkeit Ü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 Ti und Tj wird eine gerichtete Kante Ti -> Tj gezogen genau dann, wenn es p ∈ Ti und q ∈ Tj gibt mit (p, q) ∈ conf(S) Beispiel: Gegeben sei der folgende Schedule: S: r1(y); r3(x); r2(y); w1(y); r1(x); w1(x); c1; r2(x); w2(x); r2(z); w2(z); c2; w3(x); c3; 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 Prof. Dr. Günter Brackly FB Informatik / MST Datenbanken: Ablaufpläne und Serialisierbarkeit also: S: r1(y); r3(x); r2(y); w1(y); r1(x); w1(x); c1; r2(x); w2(x); r2(z); w2(z); c2; w3(x); c3; 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 Prof. Dr. Günter Brackly FB Informatik / MST Datenbanken: Ablaufpläne und Serialisierbarkeit Noch einmal: S: r1(y); r3(x); r2(y); w1(y); r1(x); w1(x); c1; r2(x); w2(x); r2(z); w2(z); c2; w3(x); c3; 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 Prof. Dr. Günter Brackly FB Informatik / MST Datenbanken: Ablaufpläne und Serialisierbarkeit 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 Prof. Dr. Günter Brackly FB Informatik / MST Datenbanken: Ablaufpläne und Serialisierbarkeit Noch einmal das Beispiel: S: r1(y); r3(x); r2(y); w1(y); r1(x); w1(x); c1; r2(x); w2(x); r2(z); w2(z); c2; w3(x); c3; Zugehöriger Konfliktgraph: T1 T2 T3 Der Konfliktgraph enthält Zykel, d.h. der Schedule S ist nicht konfliktserialisierbar!! 12 Prof. Dr. Günter Brackly FB Informatik / MST Datenbanken: Ablaufpläne und Serialisierbarkeit 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 Prof. Dr. Günter Brackly FB Informatik / MST Datenbanken: Ablaufpläne und Serialisierbarkeit 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