Datenbanken II K4 CC und Serialisierbarkeit

Werbung
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
Herunterladen