


























































Besser lernen dank der zahlreichen Ressourcen auf Docsity
Heimse Punkte ein, indem du anderen Studierenden hilfst oder erwirb Punkte mit einem Premium-Abo
Prüfungen vorbereiten
Besser lernen dank der zahlreichen Ressourcen auf Docsity
Download-Punkte bekommen.
Heimse Punkte ein, indem du anderen Studierenden hilfst oder erwirb Punkte mit einem Premium-Abo
Zwei-Phasen-Sperrprotokoll: Definition. 1. Jedes Objekt, das von einer Transaktion benutzt werden soll, muss vorher entsprechend gesperrt werden.
Art: Skripte
1 / 66
Diese Seite wird in der Vorschau nicht angezeigt
Lass dir nichts Wichtiges entgehen!



























































Kapitel 11
Mehrbenutzersynchronisation Ausführung der drei Transaktionen T 1 , T 2 und T 3 : (a) im Einzelbetrieb und(b) im (verzahnten) Mehrbenutzerbetrieb (gestrichelte Linienrepräsentieren Wartezeiten)
T 1 T 2 T 3 T 1 T 2 T 3
Fehler bei unkontrolliertem Mehrbenutzerbetrieb II Abhängigkeit von nicht freigegebenen Änderungen
1
2
2
2
2
T 2
1
1
1
1
Fehler bei unkontrolliertem Mehrbenutzerbetrieb III Phantomproblem
C,1000,...)
T 2 T 1
S erielle Ausführung von T 1 vor T 2 , also T 1 | T 2^ commit
write( A)
read( A)
write( C)
read( C)
BOT
commit
write( B)
read( B)
write( A)
read( A)
BOT
T 2 T 1 Schritt
Nicht serialisierbare Historie commit
write( B)
read( B)
commit
write( B)
read( B)
write( A)
read( A)
BOT
write( A)
read( A)
BOT
T 3 T 1 Schritt
Eine Überweisung ( T 1 ) und eine Zinsgutschrift ( T 3 )
B,b 1
b 1
b 1
B,b 1
B,b 2
b 2
b 2
(B,b 2 )
(A,a 2 )
a 2
a 2
A,a 2
A,a 1
a 1
a 1
A,a 1
3
1
Dieselbe r/w-Konstellation, diesmalzum Konflikt führend. Die DB greiftzur Kontrolle nur auf die r/w-Struktur zu, nicht auf die Semantikder Anwendung!
Motivation: Zusammenhang ACID – Scheduler Um die Isolation (I in ACID) einer Transaktion zugewährleisten, darf die Datenbank nur serialisierbareHistorien zulassen. Der Scheduler stellt dies sicher, nicht indem er (imNachhinein) schaut, ob die Historie serialisierbar war,sondern indem er nichtserialisierbare Historien gar nichterst zulässt.
Theorie der Serialisierbarkeit Konsistenzanforderung einer Transaktion T i entweder abort oder commit aber nicht beides! Falls T i^ ein abort durchführt, müssen alle anderen Operationen p (A) vori ai ausgeführt werden, also p (A) <i i^ a .i Analoges gilt für das commit , d.h. p (A) <i i^ c i^ falls T i „ committed “. Wenn T i^ ein Datum A liest und auch schreibt, muss die Reihenfolge festgelegt werden, also entweder ri (A) < i^ w (A)i^ oder w (A) <i^ i^ r (A).i
Theorie der Serialisierbarkeit II
r (A) undi^ r (A): In diesem Fall ist die Reihenfolge der Ausführungenj irrelevant, da beide TAs in jedem Fall denselben Zustand lesen. Diese beidenOperationen stehen also nicht in Konflikt zueinander, so dass in der Historieihre Reihenfolge zueinander irrelevant ist.r (A) undi^ w (A): Hierbei handelt es sich um einen Konflikt, daj T i^
A liest. Es muss also entweder r (A) vori^ w (A) oderj w (A) vor rj (A) spezifiziert werden.i^ w (A) undi r (A): analogj w (A) undi w (A): Auch in diesem Fall ist die Reihenfolge der Ausführungj
Beispiel-Historie mit vollständig geordneter Zeit r
(B) w
(A) w
(B) c
w
(C) r
(A) w
(A) c
r
(A) w
(B) c
w
(C) H = t
Historie für drei Transaktionen Beispiel-Historie für 3 TAs r
(B) w
(A) w
(B) c
w
(C) r
(A) w
(A) c
r
(A) w
(B) c
w
(C) H =
r 1
r 2
w 1
w 2
r 1
w 1
c 1
r 2
w 2
c 2 r 1
w 1
r 2
w 2
r 1
w 1
c 1
r 2
w 2
c 2 r 1
w 1
r 1
r 2
w 2
w 1
c 1
r 2
w 2
c 2 r 1
w 1
r 1
w 1
c 1
r 2
w 2
r 2
w 2
c 2 commit
write( A)
read( A)
commit
write( B)
read( B)
write( C)
write( A)
read( C)
BOT
read( A)
BOT
T 2 T 1 Schritt (s. Folie 6) (s. Folie 7) commit
write( A)
read( A)
write( C)
read( C)
BOT
commit
write( B)
read( B)
write( A)
read( A)
BOT
T 2 T 1 Schritt
Serialisierbare Historie Eine Historie ist serialisierbar, wenn sie äquivalent zu einer seriellen Historie Hs ist. Historie ... r (A) w
(A) w
(B) r (A) w
(A) c
r (A) w
(B) c
H = c