Slides

Werbung
Datenbanksysteme 1
Mehrbenutzersynchronisation
Marius Eich
30. November 2016
1 / 14
Konfliktoperationen
Konfliktoperationen sind Operationen, deren Reihenfolge in der Historie
festgelegt sein muss:
ri (A) und rj (A): Kein Konflikt. Reihenfolge ist egal.
ri (A) und wj (A) und umgekehrt: Konflikt. Die Reihenfolge der
Operationen ist entscheidend.
wi (A) und wj (A): Konflikt.
2 / 14
Serialisierbarkeit
Serialisierbarkeit ist das minimale Korrektheitskriterium einer Historie
bzgl. der Mehrbenutzersynchronisation.
Historie ist serialisierbar, wenn sie äquivalent zu einer seriellen Historie
ist.
3 / 14
Serialisierbarkeitsgraph SG
Gegeben: Historie H mit erfolgreich abgeschlossenen Transaktionen
{T1 , . . . Tn }.
Knotenmenge von SG (H): {T1 , . . . Tn }.
Für Konfliktoperationen pi , qj aus H mit pi <H qj : Füge Kante
Ti → Tj ein.
H ist serialisierbar, wenn SG (H) azyklisch ist.
4 / 14
Schreib/Leseabhängigkeiten
Ti liest von Tj , wenn gilt:
Tj schreibt mindestens ein Datum A, das Ti nachfolgend liest:
wj (A) <H ri (A)
Tj wird nicht vor dem Lesevorgang von Ti zurückgesetzt:
aj
<H ri (A)
Alle anderen zwischenzeitlichen Schreibvorgänge auf A durch andere
Transaktionen werden vor dem Lesen durch Ti zurückgesetzt.
5 / 14
Eigenschaften von Historien
Eine Historie H
ist rücksetzbar (RC), wenn immer die schreibende Transaktion in H
vor der lesenden Transaktion ihr commit durchführt.
vermeidet kaskadierendes Rücksetzten (ACA), wenn immer die
schreibende Transaktion in H ihr commit durchführt, bevor die
lesende Transaktion liest.
ist strikt, wenn die Transaktion, H die ein Datum A schreibt, immer
ihr commit durchführt, bevor eine andere Transaktion A liest oder
schreibt.
6 / 14
Historienklassen
alle Historien
H9
RC
H8
ACA
H7
ST
H1
H2
SR
H3
H4
H6
serielle Historien
H5
7 / 14
Zwei-Phasen-Sperrprotokoll (2PL)
8 / 14
Zwei-Phasen-Sperrprotokoll (2PL)
2PL garantiert lediglich die Serialisierbarkeit.
Beispiel für nicht-rücksetzbare Historie mit 2PL:
w1 [x] − unlock x − r2 [x]w2 [y ]c2 c1
9 / 14
Strenges 2PL
⇒ garantiert strikte Historien
10 / 14
Deadlocks
Deadlock:
w1 [x]w2 [y ]w1 [y ]w2 [x]
Auflösen des Deadlocks durch Zurücksetzen einer oder mehrerer
beteiligter Transaktionen
Denkbare Kriterien für Auswahl der zurückzusetzenden TA:
I
I
I
Alter der TA
Ressourcen, die TA hält
Anzahl der Deadlocks, an denen TA beteiligt ist
Deadlockvermeidung durch:
I
I
Preclaiming
Zeitstempel (wound-wait / wait-die)
11 / 14
Kompatibilitätsmatrix
NL S X
S X X X X - -
12 / 14
Aufgabe 4
T1
T2
T3
T4
T5
a
x
S
-
b
s
s
X
-
c
X
s
s
-
T1
d
x
X
e
s
s
s
-
f
S
x
T4
T3
T2
T5
13 / 14
Aufgabe 5
S
√
S
X
IS
IX
SIX
√
-
X
-
IS
√
IX
√
√
√
√
√
-
1
2
5
7
-
Datenbank
3
6
SIX
√
4
8
9
Relationen
10
Tupel
Drei Transaktionen T1, T2 und T3 fordern folgende Sperren an:
T1: Exklusive Sperre auf Knoten 5
T2: Lese-Sperre auf Knoten 7
T3: Lese-Sperre auf Knoten 4
14 / 14
Herunterladen