• Keine Ergebnisse gefunden

n n n n n n n n n n VLDatenbank-Implementierungstechniken–7–1 n n n VLDatenbank-Implementierungstechniken–7–2 n n n VLDatenbank-Implementierungstechniken–7–3

N/A
N/A
Protected

Academic year: 2022

Aktie "n n n n n n n n n n VLDatenbank-Implementierungstechniken–7–1 n n n VLDatenbank-Implementierungstechniken–7–2 n n n VLDatenbank-Implementierungstechniken–7–3"

Copied!
33
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

7. Transaktionsverwaltung

Transaktionseigenschaften

Probleme im Mehrbenutzerbetrieb

Serialisierbarkeit

Transaktionsabbruch und Fehlersicherheit

Ausnutzung semantischer Informationen

Erweiterte Transaktionsmodelle

Architektur der Transaktionsverwaltung

Sperrende und nicht-sperrende Verfahren

Transaktionen in SQL-Systemen

Transaktionsmonitore

VL Datenbank-Implementierungstechniken – 7–1

Transaktionen im Mehrbenutzerbetrieb

Ablaufintegrität

Fehler durch „gleichzeitigen“ Zugriff mehrerer Benutzer auf dieselben Daten

mehrere Programme laufen simultan

→nebenläufige, konkurrierende Prozesse

Transaktion als Verarbeitungseinheit

VL Datenbank-Implementierungstechniken – 7–2

Beispielsszenarien

Platzreservierung für Flüge quasi gleichzeitig aus vielen Reisebüros

→Platz könnte mehrfach verkauft werden, wenn mehrere Reisebüros den Platz als verfügbar identifizieren

überschneidende Kontooperationen einer Bank

statistische Datenbankoperationen

→Ergebnisse sind verfälscht, wenn während der Berechnung Daten geändert werden

VL Datenbank-Implementierungstechniken – 7–3

(2)

Transaktionseigenschaften

Eine Transaktion ist eine Folge von Operationen (Ak- tionen), die die Datenbank von einem konsistenten Zustand in einen konsistenten, eventuell veränder- ten, Zustand überführt, wobei das ACID-Prinzip ein- gehalten werden muß.

VL Datenbank-Implementierungstechniken – 7–4

ACID-Eigenschaften

Atomicity (Atomarität):

Transaktion wird entweder ganz oder gar nicht ausgeführt

Consistency (Konsistenz oder auch Integritätserhaltung):

Datenbank ist vor Beginn und nach Beendigung einer Transaktion jeweils in einem konsistenten Zustand

Isolation (Isolation):

Nutzer, der mit einer Datenbank arbeitet, sollte den Eindruck haben, daß er mit dieser Datenbank alleine arbeitet

Durability (Dauerhaftigkeit / Persistenz):

nach erfolgreichem Abschluß einer Transaktion muß das Ergebnis dieser Transaktion „dauerhaft“ in der

Datenbank gespeichert werden

VL Datenbank-Implementierungstechniken – 7–5

Kommandos einer Transaktionssprache

Beginn einer Transaktion:

Begin-of-Transaction-Kommando BOT

commit: die Transaktion soll erfolgreich beendet werden

abort: die Transaktion soll abgebrochen werden

(3)

Probleme im Mehrbenutzerbetrieb

Inkonsistentes Lesen: Nonrepeatable Read

Lesen inkonsistenter Zustände

Abhängigkeiten von nicht freigegebenen Daten: Dirty Read

Das Phantom-Problem

Verlorengegangenes Ändern: Lost Update

Integritätsverletzung durch Mehrbenutzer-Anomalie

Probleme bei Cursor-Referenzen

VL Datenbank-Implementierungstechniken – 7–7

Nonrepeatable Read

Beispiel:

ZusicherungX=A+B+Cam Ende der TransaktionT1

XundY seien lokale Variablen

Tiist die Transaktioni

IntegritätsbedingungA+B+C = 0

VL Datenbank-Implementierungstechniken – 7–8

Beispiel für inkonsistentes Lesen

T1 T2

X :=A;

Y :=A/2; A:=Y; C :=C+Y; commit;

X :=X+B; X :=X+C; commit;

VL Datenbank-Implementierungstechniken – 7–9

(4)

Lesen inkonsistenter Zustände

IntegritätsbedingungX+Y = 0

T1 T2

read(X);

read(Y);

write(X);

Y :=Y + 1;

read(X);

read(Y);

write(Y);

commit;

VL Datenbank-Implementierungstechniken – 7–10

Dirty Read

T1 T2

read(X);

X :=X+ 100; write(X);

read(X);

Y :=Y +X; write(Y);

commit;

abort;

VL Datenbank-Implementierungstechniken – 7–11

Das Phantom-Problem

T1 T2

select count (*) intoX

fromMitarbeiter;

insert

intoMitarbeiter values(M eier,50000,· · ·);

commit;

updateMitarbeiter setGehalt=

Gehalt+10000/X;

(5)

Lost Update

T1 T2 X

read(X); 10

read(X); 10

X :=X+ 1; 10

X:=X+ 1; 10

write(X); 11

write(X); 11

VL Datenbank-Implementierungstechniken – 7–13

Mehrbenutzer-Anomalie

IntegritätsbedingungA=B

T1 := hA:=A+ 10;B:=B+ 10i T2 := hA:=A∗1.1;B:=B∗1.1i T1undT2erhalten isoliert die IB

VL Datenbank-Implementierungstechniken – 7–14

Mehrbenutzer-Anomalie II

T1 T2 A B

read(A); 10 10

A:=A+ 10;

write(A); 20

read(A);

A:=A∗1.1;

write(A); 22 read(B);

B:=B∗1.1;

write(B); 11

read(B);

B:=B+ 10;

write(B); 22 21

VL Datenbank-Implementierungstechniken – 7–15

(6)

Probleme bei Cursor-Referenzen

T1 T2

Positioniere CursorC1

auf nächstes Tupel mit EigenschaftP (TupelA)

Verändere

EigenschaftP →P0 vonA

Lies laufendes Tupel

VL Datenbank-Implementierungstechniken – 7–16

Probleme mit Cursor: SQL-Notation

T1 T2

declareC1cursor for select *

fromMitarbeiter whereAbt=’Verkauf’;

...

updateMitarbeiter setAbt=’Einkauf’

whereMName= ...;

fetchC1into ...

VL Datenbank-Implementierungstechniken – 7–17

Serialisierbarkeit

Einführung in die Thematik

Formalisierung von Abläufen (Schedules)

Serialisierbarkeitsbegriffe

Vergleich der Serialisierbarkeitsbegriffe

(7)

Einführung in die Serialisierbarkeit

T1 : readA; A:=A−10; writeA; readB;

B:=B+ 10; writeB;

T2 : readB; B:=B−20; writeB; readC; C :=C+ 20; writeC;

Ausführungsvarianten für zwei Transaktionen:

seriell, etwaT1vorT2

„gemischt“, etwa abwechselnd Schritte vonT1undT2

VL Datenbank-Implementierungstechniken – 7–19

Beispiele für verschränkte Ausführungen

Ausführung 1 Ausführung 2 Ausführung 3 T1 T2 T1 T2 T1 T2

readA readA readA

A10 readB A10

writeA A10 readB

readB B20 writeA

B+ 10 writeA B20

writeB writeB readB

readB readB writeB

B20 readC B+ 10

writeB B+ 10 readC

readC C+ 20 writeB

C+ 20 writeB C+ 20

writeC writeC writeC

VL Datenbank-Implementierungstechniken – 7–20

Effekt unterschiedlicher Ausführungen

A B C A+B+C initialer Wert 10 10 10 30 nach Ausführung 1 0 0 30 30 nach Ausführung 2 0 0 30 30 nach Ausführung 3 0 20 30 50

VL Datenbank-Implementierungstechniken – 7–21

(8)

Vereinfachtes Modell

Lock-Unlock-Modell

T1 : lockA; unlockA; lockB; unlockB;

T2 : lockB; unlockB; lockC; unlockC;

VL Datenbank-Implementierungstechniken – 7–22

Beispiele II

Ausführung 1 Ausführung 2 verbotene Ausführung

T1 T2 T1 T2 T1 T2

lockA lockA lockA

unlockA lockB lockB

lockB unlockA unlockA

unlockB unlockB lockB

lockB lockB unlockB

unlockB lockC lockC

readC unlockB unlockB

unlockC unlockC unlockC

VL Datenbank-Implementierungstechniken – 7–23

Semantik mit Berechnungsfunktionen I

T1 T2 T3

lockA lockB lockA

lockB lockC lockC

unlockA f1(A, B) unlockB f3(B, C) unlockC f6(A, C) unlockB f2(A, B) lockA unlockA f7(A, C)

unlockC f4(A, B, C) unlockA f5(A, B, C)

(9)

Semantik mit Berechnungsfunktionen II

Schritt A B C

(1) T1: lockA A0 B0 C0

(2) T2: lockB A0 B0 C0

(3) T2: lockC A0 B0 C0

(4) T2: unlockB A0 f3(B0, C0) =σi C0

(5) T1: lockB A0 σi C0

(6) T1: unlockA f1(A0, σi) =σii σi C0

(7) T2: lockA σii σi C0

(8) T2: unlockC σii σi f4ii, B0, C0) =σiii (9) T2: unlockA f5ii, B0, C0) =σiv σi σiii

(10) T3: lockA σiv σi σiii

(11) T3: lockC σiv σi σiii

(12) T1: unlockB σiv f2(A0, σi) σiii

(13) T3: unlockC σiv f2(A0, σi) f6iv, σiii) (14) T3: unlockA f7iv, σiii) f2(A0, σi) f6iv, σiii)

VL Datenbank-Implementierungstechniken – 7–25

Letzter Wert für A voll ausgeschrieben

f7iv, σiii) = f7(f5(f1(A0, f3(B0, C0)), B0, C0), f4(f1(A0, f3(B0, C0)), B0, C0))

VL Datenbank-Implementierungstechniken – 7–26

Serialisierbarkeit

Eine verschränkte Ausführung mehrerer Transaktio- nen heißt serialisierbar, wenn ihr Effekt identisch zum Effekt einer (beliebig gewählten) seriellen Ausführung dieser Transaktionen ist.

VL Datenbank-Implementierungstechniken – 7–27

(10)

Konfliktgraph

T

T

T3

1

2

VL Datenbank-Implementierungstechniken – 7–28

Der Begriff des Schedules

1 2 3 v4 v v v

Scheduler

1 2 3 4

w1 w w w4 3 2

u u u u

3 w1 u1 v2 v1 2 v

... w

VL Datenbank-Implementierungstechniken – 7–29

Das Read/Write-Modell

TransaktionT ist eine endliche Folge von Operationen (Schritten)pider Formr(xi)oderw(xi):

T =p1p2p3· · ·pnmitpi∈ {r(xi), w(xi)}

Vollständige TransaktionT hat als letzten Schritt entweder einen Abbruchaoder ein Commitc:

T =p1· · ·pna oder

T=p1· · ·pnc.

(11)

Verschränkte Ausführungen

SHUFFLE(T): Menge aller verschränkten Ausführungen der Einzelschritte aller in der MengeT enthaltenen

TransaktionenTi

alle Schritte der TransaktionenTisind genau einmal enthalten

relative Reihenfolge der Einzelschritte einer Transaktion wird beibehalten

T1 := r1(x)w1(x) T2 := r2(x)r2(y)w2(y)

SHUFFLE(T) = {r1(x)w1(x)r2(x)r2(y)w2(y), r2(x)r1(x) w1(x)r2(y)w2(y), . . .}

VL Datenbank-Implementierungstechniken – 7–31

Schedule

Ein Schedule ist ein Präfix eines vollständigen Sche- dules.

r1(x)r2(x)w1(x)

| {z }

ein Schedule

r2(y)a1w2(y)c2

| {z }

ein vollständiger Schedule

VL Datenbank-Implementierungstechniken – 7–32

Serieller Schedule

Ein serieller SchedulesfürT ist ein vollständiger Schedule der folgenden Form:

s:=Tρ(1)· · ·Tρ(n) für eine Permutationρvon{1, . . . , n}

resultierende serielle Schedules für zwei Transaktionen T1:=r1(x)w1(x)c1undT2:=r2(x)w2(x)c2:

s1:=r1(x)w1(x)c1

| {z }

T1

r2(x)w2(x)c2

| {z }

T2

s2:=r2(x)w2(x)c2

| {z }

T2

r1(x)w1(x)c1

| {z }

T1

VL Datenbank-Implementierungstechniken – 7–33

(12)

Korrektheitskriterium

Ein Schedulesist korrekt, wenn der Effekt des Sche- dules s (Ergebnis der Ausführung des Schedules) äquivalent dem Effekt eines (beliebigen) seriellen Scheduless0bzgl. derselben Menge von Transaktio- nen ist (in Zeichens≈s0).

Ist ein Schedule s äquivalent zu einem seriellen Schedules0, dann istsserialisierbar (zus0).

VL Datenbank-Implementierungstechniken – 7–34

Äquivalenzrelationen I

Sichtserialisierbarkeit VSR

Idee: „Sicht“ einer Schreiboperation auf vergangene Entwicklung der Datenbankzustände durch

vorangegangene Leseoperationen

Begriff „Liest-von-Relation“RF(s)für Schedules: RF(s) := {(Ti, x, Tj)|rj(x)liest x von Ti}

exponentieller Aufwand für Test auf Sichtserialisierbarkeit

VL Datenbank-Implementierungstechniken – 7–35

Äquivalenzrelationen II

Konfliktserialisierbarkeit CSR

Idee: Bestimmung der Konflikte zwischen Transaktionen

Operationenpundqstehen in Konflikt, wenn sie auf demselben DB-Objekt arbeiten und mindestens eine davon schreibt:

C(s) :={(p, q) |p, qsind in Konflikt undp→sq}

graphbasierter Test: Konfliktgraph muß azyklisch sein

effizienter Test möglich (topologisches Sortieren) CSRVSR

(13)

Transaktionsabbruch/Fehlersicherheit

Aus Sicht der Fehlersicherheit ist folgender Schedulesnicht akzeptabel:

s =r1(x)w1(x)r2(x)a1w2(x)c2

... aber serialisierbar in VSR und CSR!

VL Datenbank-Implementierungstechniken – 7–37

Rücksetzbarkeit RC

sheißt rücksetzbar (engl. recoverable), falls folgende Bedingung erfüllt ist:

(Tiliest vonTjins)∧(ci∈s)⇒(cjs ci)

Beispiel:

s1=w1(x)w1(y)r2(u)w2(x)r2(y)w2(y)c2w1(z)c1

Ins1liestT2das DatenobjektyvonT1, aberc2kommt vorc1—s1ist nicht rücksetzbar.

s2=w1(x)w1(y)r2(u)w2(x)r2(y)w2(y)w1(z)c1c2

s2ist rücksetzbar (aber: Probleme bei Abbruch vonT1

anstelle vonc1;dirty read!)

VL Datenbank-Implementierungstechniken – 7–38

Vermeidung kaskadierender Abbrüche

Ein Schedulesvermeidet kaskadierende Abbrüche (engl. avoiding cascading aborts ACA), falls gilt:

(TiliestxvonTjins)⇒(cjsri(x)) Transaktion darf nur Daten lesen, die zuletzt von einer bereits abgeschlossenen Transaktion geschrieben wurden

Beispiel:

s2gehört nicht in die Klasse ACA

s3jedoch vermeidet kaskadierende Abbrüche:

s3=w1(x)w1(y)r2(u)w2(x)w1(z)c1r2(y)w2(y)c2

Daher:s3ACA

VL Datenbank-Implementierungstechniken – 7–39

(14)

Probleme mit Before-Images

DB-Inhalt Operation

x= 1(Anfangswert)

x= 2 w1(x2) [BFx,T1= 1] x= 3 w2(x3) [BFx,T2= 2]

a1 Rücksetzen von w1(x ← 2) mit BFx:= 1.

Überschreiben durch T2 muß erhal- ten bleiben!

x= 3

a2 Rücksetzen von w2(x ← 3) mit BFx:=??

VL Datenbank-Implementierungstechniken – 7–40

Striktheit ST

Ein Schedulesheißt strikt (engl. strict), falls die folgende Bedingung gilt:

(wj(x)→spi(x)∧j6=i)⇒ (aj<s pi(x)∨cj<spi(x), (p∈ {r, w}))

Das heißt, es darf kein „geschriebenes“ Objekt einer noch nicht beendeten Transaktion gelesen oder überschrieben werden

Beispiel:

s3∈/ST

s4ist strikt, alsos4ST:

s4=w1(x)w1(y)r2(u)w1(z)c1w2(x)r2(y)w2(y)c2

VL Datenbank-Implementierungstechniken – 7–41

Zusammenhang zwischen den Klassen

RC

ST

VSR CSR

seriell ACA

(15)

Operationen: Benutzerkommandos

Benutzerkommandos, die den Abbruch einer Transaktion beeinflussen können:

commit versucht ein Commit durchzuführen;gelingt aber nicht immer (Integritätsverletzung);tatsächliches Commit ist erst duch die Erfolgsmeldung des DBMS garantiert

abort erzwingt endgültigen Abbruch einer Transaktion

andere Datenbank-Operationen, die zum Abbruch führen können: Division durch Null,

Integritätsverletzungen

VL Datenbank-Implementierungstechniken – 7–43

Operationen: Intern

commit führt intern ein endgültiges Commit durch

für abort zwei Varianten:

abort+restart bricht die Transaktion ab, aber versucht durch ein erneutes Starten, diese

Transaktion zu einem erfolgreichen Ende zu führen (durch Eingriff des Schedulers; bei wiederholten erfolglosen abort+restart auch endgültiger Abbruch möglich)

abort+stop realisiert den endgültigen Abbruch (expliziter Benutzerwunsch oder bei nichtreparablen Integritätsverletzungen)

VL Datenbank-Implementierungstechniken – 7–44

Operationen: Zusammenhang

abort

abort+restart abort+stop DB-Operation

Benutzerebeneintern

commit commit

VL Datenbank-Implementierungstechniken – 7–45

(16)

Ausnutzung semantischer Informationen

Bisher: Read/Write-Modell

low-level Operationen

keine spezielle Optimierung möglich

Ausnutzung semantischer Informationen

höhere Operationen

Vertauschbarkeitsrelationen

VL Datenbank-Implementierungstechniken – 7–46

Erweiterte Transaktionsmodelle

Probleme mit ACID-Transaktionen

Auswege

Geschachtelte Transaktionen (engl. nested transactions):

hierarchische Ansammlung von Vater- / Sohntransaktionen

Sagas:

Zwischenergebnisse bereits durch ein Commit anderen Transaktionen verfügbar, aber trotzdem bei einem späteren Abbruch wieder rückgängig gemacht

;Formalisierung von Abhängigkeiten zwischen Teiltransaktionen

VL Datenbank-Implementierungstechniken – 7–47

Der Scheduler

T1 T2 Tn

Scheduler (SC) Manager (TM)

Manager (SM)

korrekter Schedule (bestehend aus r, w, c, a) Transaktions-

Recovery Manager (RM)

Puffer Manager (PM) Speicher

(17)

Transaktionsoperationen

Transaktionsklammern

BOT (Begin of Transaction)

EOT (End of Transaction) Schritte:

r(read),

w(write),

a(abort), und

c(commit).

t={r|w}(a|c)

VL Datenbank-Implementierungstechniken – 7–49

Zustände einer Transaktion

stopped

active

aborted committed

running delayed

initial BOT

execute

delay

restart

reject EOT

stop retry

VL Datenbank-Implementierungstechniken – 7–50

Behandlung eines Schritts

ausführen (execute)

TransaktionZustand running.

verzögern (delay)

TransaktionZustand delayed

zurückweisen (reject)

TransaktionZustand aborted

VL Datenbank-Implementierungstechniken – 7–51

(18)

Aggressive Scheduler

ein Scheduler ist aggressiv, wenn er Konflikte zuläßt und dann versucht, aufgetretene Konflikte zu erkennen und aufzulösen

maximiert die Parallelität von Transaktionen

Risiko: Transaktionen werden erst am Ende ihrer Ausführung zurückgesetzt

VL Datenbank-Implementierungstechniken – 7–52

Konservative Scheduler

ein Scheduler arbeitet konservativ, wenn er Konflikte möglichst vermeidet, dafür aber Verzögerungen von Transaktionen in Kauf nimmt

erlauben nur eine geringe Parallelität von Transaktionen

minimieren den Rücksetzungsaufwand für abgebrochene Transaktionen

im Extremfall findet keine Parallelisierung von Transaktionen mehr statt, d.h., es werden immer alle Transaktionen bis auf eine verzögert

VL Datenbank-Implementierungstechniken – 7–53

Sperrmodelle

Schreib- und Lesesperren in folgender Notation:

rl(x): Lesesperre (engl. read lock ) auf einem Objektx

wl(x): Schreibsperre (engl. write lock ) auf einem Objekt x

Entsperrenru(x)undwu(x), oft zusammengefaßtu(x)für engl. unlock

(19)

Sperrdisziplin

Schreibzugriffw(x)nur nach Setzen einer Schreibsperre wl(x)möglich

Lesezugriffer(x)nur nach drl(x)oderwl(x)erlaubt

nur Objekte sperren, die nicht bereits von einer anderen Transaktion gesperrt

nachrl(x)nur nochwl(x)erlaubt, danach aufxkeine Sperre mehr; Sperren derselben Art werden maximal einmal gesetzt

nachu(x)durchtidarftikein erneutesrl(x)oderwl(x) ausführen

vor einem commit müssen alle Sperren aufgehoben werden

VL Datenbank-Implementierungstechniken – 7–55

Verklemmungen

t1 t2

wl(x) wl(y) delay wl(y)

wl(x) ←delay Verklemmung!

Alternativen:

Verklemmungen werden erkannt und beseitigt

Verklemmungen werden von vornherein vermieden

VL Datenbank-Implementierungstechniken – 7–56

Verklemmungserkennung und -auflösung

Wartegraph

1 2 3

4

6 5

neue Sperre

Auflösen durch Abbruch einer Transaktion, Kriterien:

Anzahl der aufgebrochenen Zyklen,

Länge einer Transaktion,

Rücksetzaufwand einer Transaktion,

Wichtigkeit einer Transaktion, ...

VL Datenbank-Implementierungstechniken – 7–57

(20)

Livelock-Problem

1. T1sperrtA

2. T2willAsperren, muß aber warten

3. T3will danachAsperren, muß auch warten 4. T1gibtAfrei

5. T3kommt vorT2an eine Zeitscheibe, sperrtA 6. T2will weiterhinAsperren, muß aber warten 7. T4will danachAsperren, muß auch warten 8. T3gibtAfrei

9. T4kommt vorT2an die nächste Zeitscheibe ...

VL Datenbank-Implementierungstechniken – 7–58

Sperrprotokolle: Notwendigkeit

T1 T2

wl(x) w(x) u(x)

wl(x) w(x) u(x) wl(y) w(y) u(y) wl(y) w(y) u(y)

VL Datenbank-Implementierungstechniken – 7–59

Zwei-Phasen-Sperr-Protokoll

2PL

Phase Phase

Freigabe- Anforderungs-

#Sperren

Zeit

(21)

Konflikt bei Nichteinhaltung des 2PL

T1 T2

u(x)

wl(x) wl(y) ... u(x) u(y) wl(y) ...

VL Datenbank-Implementierungstechniken – 7–61

Striktes Zwei-Phasen-Sperr-Protokoll

Zeit

S2PL

Phase

Freigabe-Phase Anforderungs-

#Sperren

vermeidet kaskadierende Abbrüche!

VL Datenbank-Implementierungstechniken – 7–62

Konservatives 2PL-Protokoll

Zeit Anforderungs-

Phase

Phase

C2PL

Freigabe-

#Sperren

Zeit Anforderungs-

Phase

#Sperren

Phase Freigabe-

CS2PL

vermeidet Deadlocks!

VL Datenbank-Implementierungstechniken – 7–63

(22)

Sperrgranulate

Granularitätshierarchien in Datenbanken

Hierarchische Sperren

Baumprotokolle für Baumindexe

VL Datenbank-Implementierungstechniken – 7–64

Granularitätshierarchien in RDBS

Datenbank Datei Cluster Datenbank

Attribut Seite

Granularitätshierarchien

Logisch Physisch

Relation Tupel

VL Datenbank-Implementierungstechniken – 7–65

Hierarchische Sperren

Sperren pflanzen sich nach unten (in Richtung der Blätter) fort

Sperren dürfen nicht von oben (von der Wurzel her) überschrieben werden

Zusätzlich: intentionale Sperren (engl. intentional locks) Warnungen vor Sperren, die sich in der Hierarchie weiter unten befinden

irl(intentionale Lesesperre) undiwl(intentionale Schreibsperre)

(23)

Kompatibilitätsmatrix

für elementare Sperren

rli(x) wli(x) rlj(x) √

— wlj(x) — —

VL Datenbank-Implementierungstechniken – 7–67

Kompatibilitätsmatrix

für hierarchische Sperren

rli(x) wli(x) irli(x) iwli(x) riwli(x) rlj(x) √

— —

wlj(x) — — — — —

irlj(x) √

iwlj(x) — —

riwlj(x) — — — —

VL Datenbank-Implementierungstechniken – 7–68

Ablauf des hierarchischen Sperren

1. Sperren werden auf einem Pfad in der Reihenfolge von der Wurzel zum Zielobjekt gesetzt

2. Datenobjekt, auf dem gearbeitet werden soll, wird gesperrt: Schreib- oder Lesesperre (dabei Sperrenverträglichkeitsmatrix beachten!) 3. Alle anderen Knoten auf dem Pfad bekommen

intentionale Sperren

4. Sperren können verschärft werden, das heißt einrlkann zumwlwerden, einirlzumrlund einirlzumiwl 5. Freigabe erfolgt in umgekehrter Reihenfolge

VL Datenbank-Implementierungstechniken – 7–69

(24)

Hierarchisches Sperren: Beispiel I

(BetriebsDB)

(Tamara Jagellowsk)

Attribut ...

...

... (Projekt)

(Mario De Monti)

(Telefon) (Gehalt)

Datenbank

Attribut (Mitarbeiter)

BetriebsDB BetriebsDB

Tamara, ..., Mario

Gehalt, ..., Telefon

Mitarbeiter Mitarbeiter

T 1 T2

rl (implizit) rl (implizit) rl (explizit)

irl (explizit) iwl (explizit)

iwl (explizit)

Tupel Tupel

Relation Relation

VL Datenbank-Implementierungstechniken – 7–70

Hierarchisches Sperren: Beispiel II

(BetriebsDB)

(Tamara Jagellowsk)

Attribut ...

...

... (Projekt)

(Mario De Monti)

(Telefon) (Gehalt)

Datenbank

Attribut (Mitarbeiter)

BetriebsDB

Tamara

Telefon Gehalt

Mitarbeiter BetriebsDB

rl (explizit)

iwl (explizit)

iwl (explizit)

iwl (explizit)

wl (explizit)

T1 T2

irl (explizit)Tamara irl (explizit)Mitarbeiter irl (explizit)

Tupel Tupel

Relation Relation

VL Datenbank-Implementierungstechniken – 7–71

Hierarchisches Sperren: riwl

Datenbank

(Mitarbeiter) (BetriebsDB)

(Tamara Jagellowsk) ...

... (Projekt)

(Mario De Monti)

2

Mitarbeiter Mitarbeiter

riwl (explizit)

Tamara, ..., Mario rl (implizit) wl (explizit)Tamara

T sperrt

riwl (explizit) T sperrt1

BetriebsDB BetriebsDB

irl (explizit)

irl (explizit)

rl (explizit)Mario

Relation Relation

Tupel Tupel

(25)

Sperren in Indexstrukturen

Baumprotokoll

1. Objektokann nur dann vonT gesperrt werden, wenn sein direkter Vorgänger bereits vonT gesperrt ist 2. erste Regel gilt nicht für die erste Sperre einer

Transaktion

3. Sperren können jederzeit wieder freigegeben werden 4. Kein Objekt kann innerhalb einer TransaktionT zweimal

gesperrt werden

VL Datenbank-Implementierungstechniken – 7–73

Beispiel Baumprotokoll

lockA; lockB; unlockA; lockD

B D

F

E

C

G A

VL Datenbank-Implementierungstechniken – 7–74

Ablauf im Baumprotokoll

T1 T2 T3

lockA lockB lockD unlockB

lockB lockC

lockE unlockD

lockF unlockA

lockG unlockC

unlockE lockE

unlockF unlockB

unlockG unlockE

VL Datenbank-Implementierungstechniken – 7–75

(26)

Baumprotokolleigenschaften

Baumprotokoll erzwingt nicht 2PL!

Falls alle Transaktionen dem Baum-Protokoll genü- gen, ist jeder korrekte Schedule serialisierbar.

VL Datenbank-Implementierungstechniken – 7–76

Nicht-sperrende Verfahren

Zeitstempelbasierte Verfahren erzwingen eine korrekte Reihenfolge der Bearbeitungsschritte mittels geeigneter Markierungen der Transaktionen

Serialisierbarkeitstester verwalten einen Konfliktgraphen, und realisieren daher eine direkte Überprüfung der Konfliktserialisierbarkeit

Zertifikatoren führen zunächst die kompletten Transaktion aus und versuchen erst am Ende festzustellen, ob die Transaktion gemäß dem Serialisierbarkeitsbegriffs abgelaufen sind

VL Datenbank-Implementierungstechniken – 7–77

Zeitmarkenverfahren

Zeitmarken sind eindeutig und werden fortlaufend vergeben.

Für jedes Datenobjektxwerden zwei Werte geführt:

max-r-scheduled[x]:

Variable, die den Zeitstempel der letzten Leseoperation aufxenthält

max-w-scheduled[x]:

Variable, die den Zeitstempel der letzten Schreiboperation aufxenthält

(27)

Timestamp-Ordering-Regel

Eine Operation pi[x] wird vorqk[x] genau dann aus- geführt, wennts(Ti)< ts(Tk)gilt.

pundq: inkompatible Operationen der TransaktionenTi

bzw.Tk (i6=k) auf einem Objektx

ts(Ti)bzw.ts(Tk)sind Zeitstempel der TransaktionenTi

bzw.Tk

Formal:

Sindpi(x)undqj(x)in Konflikt, so gilt:

pi(x)wird vorqj(x)ausgeführt⇐⇒ts(Ti)< ts(Tj).

VL Datenbank-Implementierungstechniken – 7–79

Basis-TO-Algorithmus

if pi[x] ist eingetroffen then if pi[x] ist ri[x] then

if ts(Ti)<max-w-scheduled[x] then weise Operation zurück;

else

max-r-scheduled[x] :=

max(max-r-scheduled[x], ts(Ti));

gebe Operation weiter;

else /* pi[x] ist wi[x] */

if ts(Ti)<max-w-scheduled[x] or ts(Ti)<max-r-scheduled[x] then weise Operation zurück;

else

max-w-scheduled[x] :=ts(Ti);

gebe Operation weiter;

VL Datenbank-Implementierungstechniken – 7–80

Nachteile und Vorteile der TO-Verfahren

Nachteil: Anfälligkeit gegen stark variierende Laufzeiten von Transaktionen

lang andauernde Transaktionen bearbeiten ihre letzten Schritte längere Zeit nach der Vergabe der Zeitmarke

kommen damit mit diesen Schritten mit größerer Wahrscheinlichkeit „zu spät“

Vorteil: einfache Realisierung in verteilten Systemen

VL Datenbank-Implementierungstechniken – 7–81

(28)

Zeitmarkenverfahren: Ablauf

T1 T2 T3 A B C

mrs mws mrs mws mrs mws

ts= 200 ts= 150 ts= 175 0 0 0 0 0 0

readB 0 0 200 0 0 0

readA 150 0 200 0 0 0

readC 150 0 200 0 175 0

writeB 150 0 200 200 175 0

writeA 150 200 200 200 175 0

writeC 150 200 200 200 175

abort 150 200 200 200 175 0

VL Datenbank-Implementierungstechniken – 7–82

Optimiertes Zeitmarkenverfahren

Optimierte BTO-Regel:

bei negativen Ausgang des Vergleichs einer schreibenden Transaktion mit der

max-w-scheduled-Marke wird das Schreiben ignoriert sofern kein Konflikt mit der max-w-scheduled-Marke auftritt

alter Wert von max-w-scheduled wird übernommen und die Transaktion läuft weiter

;„Optimierung für blindes Schreiben“

VL Datenbank-Implementierungstechniken – 7–83

Opt. Zeitmarkenverfahren: Ablauf

T1 T2 T3 A C

mrs mws mrs mws

ts= 200 ts= 150 ts= 175 0 0 0 0

readA 150 0 0 0

readC 150 0 175 0

writeA 150 200 175 0

writeA 150 200 () 175 0

(29)

Livelocks im Zeitmarkenverfahren

T1 T2 T10 T20 A B

mrs mws mrs mws

ts= 100 ts= 110 ts= 120 ts= 130 0 0 0 0

writeB 0 0 0 100

writeA 0 110 0 100

readA 0 110 0 100

writeB 0 110 0 120

readB 0 110 0 120

writeA 0 130 0 120

readA 0 130 0 120

VL Datenbank-Implementierungstechniken – 7–85

Serialisierbarkeitsgraphentester

Problem: Bereinigen des Konfliktgraphens r0(x)w1(x)w1(y1)c1

| {z }

T1

... wn(x)wn(yn)cn

| {z }

Tn

w0(z)

t0 t

1

t2

.. .

tn

VL Datenbank-Implementierungstechniken – 7–86

Optimistische Verfahren: Phasen

1. Ausführungsphase (execute): Transaktion wird ausgeführt, d.h. alle Lese- und Schreiboperationen;

Schreiboperationen jedoch nicht in der Datenbank, sondern auf einer lokalen Kopie des Datenbankobjekts im Puffer

2. Validierung (validate)

für jede Transaktion, die commit ausführen will, wird geprüft, ob sie im Sinne der Konfliktserialisierbarkeit korrekt abgelaufen ist

3. Persistenzphase (persist):

falls keine Konflikte aufgetreten sind, Zurückschreiben aller geänderten Datenbankobjekte in den stabilen Speicher (d.h. in die Datenbank)

VL Datenbank-Implementierungstechniken – 7–87

(30)

Validierungskriterium

Transaktionszähler T C

∀Ti, Tj:n(Ti)< n(Tj)mit

n(Ti) =Wert von TC nach der Validierung vonTi: 1. Tibeendet seine valpersist-Phase, bevorTj

diese beginnt.

2. x∈ws(Ti)∩rs(Tj)⇒Tibeendet valpersist-Phase, bevorTjxliest.

3. x∈rs(Ti)∩ws(Tj)⇒Tiliestxvor Beginn der valpersist-Phase vonTj

ws(Ti)ist write-set vonTi(alle vonTigeschriebenen DB-Objekte)

rs(Ti)ist read-set vonTi(gelesene DB-Objekte)

VL Datenbank-Implementierungstechniken – 7–88

Optimistische Scheduler

Rückwärtsvalidierung

Vorwärtsvalidierung execute

validate

validate persist persist

execute execute execute

execute

execute validate persist persist validate

3 2 1 3 2 T1 T

T

T

T

T

VL Datenbank-Implementierungstechniken – 7–89

Optimistische Scheduler II

Rückwärtsvalidierung:

Test vonrs(Ti)gegenws(Tj)für bereits abgeschlosseneTj

ausgenommen davon sindTj, die bereits vor Beginn vonTiein commit ausgeführt haben

bei Konflikt: Zurücksetzen vonTi

im Beispiel: Test vonrs(T1)gegenws(T2)undws(T3)

Vorwärtsvalidierung

Test vonws(Ti)gegenrs(Tj)für TransaktionenTj, die aktiv sind (also in der Ausführungsphase)

bei Konflikt: Zurücksetzen vonTj

(31)

Transaktionen in SQL-DBS

Aufweichung von ACID in SQL-92: Isolationsebenen set transaction

[ { read only | read write }, ] [isolation level

{ read uncommitted | read committed | repeatable read | serializable }, ] [ diagnostics size ...]

Standardeinstellung:

set transaction read write, isolation level serializable

VL Datenbank-Implementierungstechniken – 7–91

Bedeutung der Isolationsstufen

read uncommitted

schwächste Stufe: Zugriff auf nicht geschriebene Daten, nur für read only Transaktionen

statistische und ähnliche Transaktionen (ungefährer Überblick, nicht korrekte Werte)

keine Sperreneffizient ausführbar, keine anderen Transaktionen werden behindert

read committed

nur Lesen endgültig geschriebener Werte, aber nonrepeatable read möglich

repeatable read

kein nonrepeatable read, aber Phantomproblem kann auftreten

serializable

garantierte Serialisierbarkeit

VL Datenbank-Implementierungstechniken – 7–92

Isolationsebenen II

Isolationsebene Dirty Unrepeatable Phantom

Read Read Read

Read Uncommitted + + +

Read Committed + +

Repeatable Read +

Serializable

VL Datenbank-Implementierungstechniken – 7–93

(32)

Oracle I

Unterstützung der Isolationsebenen Read Committed und Serializable

darüber hinaus: Read-Only -Modus (nicht Bestandteil von SQL-92)

set transaction isolation level read committed;

set transaction isolation level serializable;

set transaction isolation level read only;

VL Datenbank-Implementierungstechniken – 7–94

Oracle II

Isolationsebenen für eine Menge von Transaktionen alter session

set isolation_level Isolationsebene;

Explizite Kommandos zum Setzen von Sperren lock table Tabelle in row share mode;

lock table Tabelle in share mode;

lock table Tabelle in row exclusive mode;

lock table Tabelle in share row exclusive mode;

lock table Tabelle in exclusive mode;

VL Datenbank-Implementierungstechniken – 7–95

Transaktionsmonitore

Presentation Server Presentation Server

Workflow Controller

(33)

Transaktionsmonitore: Architektur

Präsentations-Server, engl. presentation server realisiert als Client die Kommunikation mit dem Anwender (Kommandosprache oder Menü-gesteuerte Oberflächen zum Absetzen von Transaktionen etc.)

Workflow-Kontroller (engl. workflow controller ) erzwingt die Zuteilung (engl. routing) der

Transaktionsanforderungen an verschiedenen DBMS und realisiert z.B. das Zwei-Phasen-Commit-Protokoll

Transaktions-Server (engl. transaction server ) realisieren die Kopplung der lokalen DBMS mit dem Transaktionsmonitor

VL Datenbank-Implementierungstechniken – 7–97

Vorteile eines Transaktionsmonitors

bietet eine einheitliche Schnittstelle für die

Transaktionsprogrammierung auf verschiedenen DBMS

bei verteilter Verarbeitung Übernahme der Routing der Transaktionen und der Erzwingung von

Commit-Protokollen

Übernahme von Systemfunktionen wie Lastbalancierung, Fehlerkontrolle und Systemkonfiguration

kann Funktionen wie das Schreiben eines Log-Buchs oder die Kommunikationsüberwachung übernehmen

Transaktions-Server eines TP-Monitors kann auch Daten einkapseln, die nicht von einem DBMS mit voller

Transaktionsfunktionalität verwaltet werden

VL Datenbank-Implementierungstechniken – 7–98

Referenzen

ÄHNLICHE DOKUMENTE

where Bücher.ISBN = Buch_Stichwort.ISBN select Bücher.ISBN, Titel, Stichwort (richtig) from Bücher, Buch_Stichwort. where Bücher.ISBN

Vorl V_Bez SWS Semester Studiengang _DB _zwei _erstes Informatik Vorl_Voraus V_Bez Voraussetzung.

Crossectional study on the prevalence and economic significance of hydatidosis in slaughtered ruminants at Debrezeit ELFORA export abattoir Oromia region, Eastern Showa

Es wird ein Beweis ohne Worte dazu gegeben. 2 Beweis

Die Spirale ist eine logarithmische Spirale mit folgender Drehstreck- symmetrie: Drehung um 45° mit gleichzeitiger Streckung mit 2 ist eine Deckabbil- dung

Es werden allerdings nicht alle pythagoreischen Tripel generiert... Jedes pythagoreische Dreieck ist zwei

Die zu den Tripeln gehörenden Dreiecke nähern sich eben- falls einem rechtwinklig gleichschenkligen Dreieck an.. Die beiden Kathetenlängen un- terscheiden sich immer nur

[r]