8. Transaktionsverwaltung Der Scheduler

Werbung
8. Transaktionsverwaltung
■
■
■
■
■
Architektur der Transaktionsverwaltung
Sperrende und nicht-sperrende Verfahren
Transaktionen in SQL-Systemen
Transaktionsmonitore
Verteilte Transaktionen
VL Datenbank-Implementierungstechniken – 8–1
Der Scheduler
T1
T2
Tn
TransaktionsManager (TM)
Scheduler (SC)
korrekter Schedule
(bestehend aus r, w, c, a)
Speicher
Manager (SM)
Recovery
Manager (RM)
Puffer
Manager (PM)
DB
VL Datenbank-Implementierungstechniken – 8–2
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 – 8–3
Zustände einer Transaktion
active
execute
delay
BOT
initial
running
delayed
restart
retry
reject
stop
aborted
EOT
committed
stopped
VL Datenbank-Implementierungstechniken – 8–4
Behandlung eines Schritts
ausführen (execute)
Transaktion → Zustand running.
■ verzögern (delay)
Transaktion → Zustand delayed
■ zurückweisen (reject)
Transaktion → Zustand aborted
■
VL Datenbank-Implementierungstechniken – 8–5
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 – 8–6
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 – 8–7
Sperrmodelle
Schreib- und Lesesperren in folgender Notation:
■ rl(x): Lesesperre (engl. read lock) auf einem Objekt x
■ wl(x): Schreibsperre (engl. write lock) auf einem Objekt
x
Entsperren ru(x) und wu(x), oft zusammengefaßt u(x) für
engl. unlock
VL Datenbank-Implementierungstechniken – 8–8
Sperrdisziplin
■
■
■
■
■
■
Schreibzugriff w(x) nur nach Setzen einer Schreibsperre
wl(x) möglich
Lesezugriffe r(x) nur nach d rl(x) oder wl(x) erlaubt
nur Objekte sperren, die nicht bereits von einer anderen
Transaktion gesperrt
nach rl(x) nur noch wl(x) erlaubt, danach auf x keine
Sperre mehr; Sperren derselben Art werden maximal
einmal gesetzt
nach u(x) durch ti darf ti kein erneutes rl(x) oder wl(x)
ausführen
vor einem commit müssen alle Sperren aufgehoben
werden
VL Datenbank-Implementierungstechniken – 8–9
Verklemmungen
t1
wl(x)
t2
wl(y)
delay → wl(y)
wl(x)
← delay
Verklemmung!
Alternativen:
■ Verklemmungen werden erkannt und beseitigt
■ Verklemmungen werden von vornherein vermieden
VL Datenbank-Implementierungstechniken – 8–10
Verklemmungserkennung und -auflösung
Wartegraph
6
5
4
neue
Sperre
1
2
3
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 – 8–11
Livelock-Problem
1.
2.
3.
4.
5.
6.
7.
8.
9.
T1
T2
T3
T1
T3
T2
T4
T3
T4
sperrt A
will A sperren, muß aber warten
will danach A sperren, muß auch warten
gibt A frei
kommt vor T2 an eine Zeitscheibe, sperrt A
will weiterhin A sperren, muß aber warten
will danach A sperren, muß auch warten
gibt A frei
kommt vor T2 an die nächste Zeitscheibe ...
VL Datenbank-Implementierungstechniken – 8–12
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 – 8–13
#Sperren
Zwei-Phasen-Sperr-Protokoll
2PL
AnforderungsPhase
FreigabePhase
Zeit
VL Datenbank-Implementierungstechniken – 8–14
Konflikt bei Nichteinhaltung des 2PL
T1
T2
u(x)
wl(x)
wl(y)
..
.
u(x)
u(y)
wl(y)
..
.
VL Datenbank-Implementierungstechniken – 8–15
#Sperren
Striktes Zwei-Phasen-Sperr-Protokoll
S2PL
AnforderungsPhase
Zeit
Freigabe-Phase
vermeidet kaskadierende Abbrüche!
VL Datenbank-Implementierungstechniken – 8–16
#Sperren
#Sperren
Konservatives 2PL-Protokoll
C2PL
CS2PL
FreigabePhase
Zeit
Zeit
AnforderungsPhase
AnforderungsPhase
FreigabePhase
vermeidet Deadlocks!
VL Datenbank-Implementierungstechniken – 8–17
Sperrgranulate
■
Granularitätshierarchien in Datenbanken
■
Hierarchische Sperren
■
Baumprotokolle für Baumindexe
VL Datenbank-Implementierungstechniken – 8–18
Granularitätshierarchien in RDBS
Granularitätshierarchien
Datenbank
Datenbank
Relation
Datei
Tupel
Cluster
Attribut
Seite
Logisch
Physisch
VL Datenbank-Implementierungstechniken – 8–19
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) und iwl (intentionale
Schreibsperre)
VL Datenbank-Implementierungstechniken – 8–20
Kompatibilitätsmatrix
■
für elementare Sperren
rlj (x)
wlj (x)
rli (x) wli (x)
√
—
—
—
VL Datenbank-Implementierungstechniken – 8–21
Kompatibilitätsmatrix
■
für hierarchische Sperren
rlj (x)
wlj (x)
irlj (x)
iwlj (x)
riwlj (x)
rli (x) wli (x) irli (x) iwli (x) riwli (x)
√
√
—
—
—
—
—
—
—
—
√
√
√
√
—
√
√
—
—
—
√
—
—
—
—
VL Datenbank-Implementierungstechniken – 8–22
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 ein rl kann
zum wl werden, ein irl zum rl und ein irl zum iwl
5. Freigabe erfolgt in umgekehrter Reihenfolge
VL Datenbank-Implementierungstechniken – 8–23
Hierarchisches Sperren: Beispiel I
T1
T2
BetriebsDB
Mitarbeiter
rl (implizit)
Gehalt, ..., Telefon
rl (implizit)
iwl (explizit)
(BetriebsDB)
Relation
rl (explizit)
Tamara, ..., Mario
BetriebsDB
Datenbank
irl (explizit)
Tupel
(Tamara Jagellowsk)
Attribut
(Gehalt)
...
Relation
...
(Mitarbeiter)
...
(Projekt)
Mitarbeiter
iwl (explizit)
Tupel
(Mario De Monti)
Attribut
(Telefon)
VL Datenbank-Implementierungstechniken – 8–24
Hierarchisches Sperren: Beispiel II
T1
T2
BetriebsDB
Mitarbeiter
Tamara
Gehalt
rl (explizit)
iwl (explizit)
(BetriebsDB)
Relation
irl (explizit)
irl (explizit)
BetriebsDB
Datenbank
irl (explizit)
Tupel
(Tamara Jagellowsk)
Attribut
(Projekt)
Tupel
...
(Mario De Monti)
Mitarbeiter
iwl (explizit)
Tamara
iwl (explizit)
Telefon
Attribut
...
(Gehalt)
Relation
...
(Mitarbeiter)
wl (explizit)
(Telefon)
VL Datenbank-Implementierungstechniken – 8–25
Hierarchisches Sperren: riwl
T1 sperrt
T2 sperrt
BetriebsDB
Mitarbeiter
riwl (explizit)
BetriebsDB
Datenbank
riwl (explizit)
irl (explizit)
(BetriebsDB)
Relation
...
(Mitarbeiter)
Relation
(Projekt)
Mitarbeiter
irl (explizit)
Tamara, ..., Mario
rl (implizit)
Tamara
wl (explizit)
Tupel
(Tamara Jagellowsk)
...
Tupel
(Mario De Monti)
Mario
rl (explizit)
VL Datenbank-Implementierungstechniken – 8–26
Sperren in Indexstrukturen
Baumprotokoll
1. Objekt o kann nur dann von T gesperrt werden, wenn
sein direkter Vorgänger bereits von T 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 Transaktion T zweimal
gesperrt werden
VL Datenbank-Implementierungstechniken – 8–27
Beispiel Baumprotokoll
lock A; lock B ; unlock A; lock D
A
B
C
D
E
F
G
VL Datenbank-Implementierungstechniken – 8–28
Ablauf im Baumprotokoll
T1
lock A
lock B
lock D
unlock B
T2
T3
lock B
lock C
lock E
unlock D
lock F
unlock A
lock G
unlock C
unlock E
lock E
unlock F
unlock B
unlock G
unlock E
VL Datenbank-Implementierungstechniken – 8–29
Baumprotokolleigenschaften
Baumprotokoll erzwingt nicht 2PL!
Falls alle Transaktionen dem Baum-Protokoll genügen, ist jeder korrekte Schedule serialisierbar.
VL Datenbank-Implementierungstechniken – 8–30
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 – 8–31
Zeitmarkenverfahren
■
Zeitmarken sind eindeutig und werden fortlaufend
vergeben.
■
Für jedes Datenobjekt x werden zwei Werte geführt:
◆ max-r-scheduled[x]:
Variable, die den Zeitstempel der letzten
Leseoperation auf x enthält
◆ max-w-scheduled[x]:
Variable, die den Zeitstempel der letzten
Schreiboperation auf x enthält
VL Datenbank-Implementierungstechniken – 8–32
Timestamp-Ordering-Regel
Eine Operation pi [x] wird vor qk [x] genau dann ausgeführt, wenn ts(Ti ) < ts(Tk ) gilt.
■ p
und q : inkompatible Operationen der Transaktionen T i
bzw. Tk (i 6= k ) auf einem Objekt x
■ ts(Ti )
bzw. ts(Tk ) sind Zeitstempel der Transaktionen Ti
bzw. Tk
■
Formal:
Sind pi (x) und qj (x) in Konflikt, so gilt:
pi (x) wird vor qj (x) ausgeführt ⇐⇒ ts(Ti ) < ts(Tj ).
VL Datenbank-Implementierungstechniken – 8–33
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 – 8–34
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 – 8–35
Zeitmarkenverfahren: Ablauf
T1
ts = 200
T2
ts = 150
T3
ts = 175
read B
read A
read C
write B
A
B
C
mrs
mws
mrs
mws
mrs
mws
0
0
0
0
0
0
0
0
200
0
0
0
150
0
200
0
0
0
150
0
200
0
175
0
150
0
200
200
175
0
150
200
200
200
175
0
write C ⇓
150
200
200
200
175
⇓
abort
150
200
200
200
175
0
write A
VL Datenbank-Implementierungstechniken – 8–36
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 – 8–37
Opt. Zeitmarkenverfahren: Ablauf
T1
ts = 200
T2
ts = 150
T3
A
mws
mrs
mws
0
0
0
0
150
0
0
0
ts = 175
read A
C
mrs
read C
150
0
175
0
200
175
0
write A
150
√
150
200 (⇓)
175
0
write A
√
VL Datenbank-Implementierungstechniken – 8–38
Livelocks im Zeitmarkenverfahren
T1
ts = 100
T2
ts = 110
T10
ts = 120
T20
ts = 130
write B
write A
read A ⇓
write B
read B ⇓
write A
read A ⇓
A
B
mrs
mws
mrs
0
0
0
mws
0
0
0
0
100
0
110
0
100
0
110 ⇓
0
100
0
110
0
120
0
110
0
120 ⇓
0
130
0
120
0
130 ⇓
0
120
VL Datenbank-Implementierungstechniken – 8–39
Serialisierbarkeitsgraphentester
Problem: Bereinigen des Konfliktgraphens
r0 (x) w1 (x)w1 (y1 )c1 ... wn (x)wn (yn )cn w0 (z)
|
{z
} |
{z
}
T1
Tn
t
0
t
t
1
2
.
.
.
t
n
VL Datenbank-Implementierungstechniken – 8–40
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 – 8–41
Validierungskriterium
Transaktionszähler T C
∀Ti , Tj : n(Ti ) < n(Tj ) mit
n(Ti ) =Wert von TC nach der Validierung von Ti :
1. Ti beendet seine valpersist-Phase, bevor Tj
diese beginnt.
2. x ∈ ws(Ti ) ∩ rs(Tj ) ⇒ Ti beendet
valpersist-Phase, bevor Tj x liest.
3. x ∈ rs(Ti ) ∩ ws(Tj ) ⇒ Ti liest x vor Beginn der
valpersist-Phase von Tj
ws(Ti) ist write-set von Ti (alle von Ti geschriebenen
DB-Objekte)
rs(Ti ) ist read-set von Ti (gelesene DB-Objekte)
VL Datenbank-Implementierungstechniken – 8–42
Optimistische Scheduler
execute
T
1
T
2
T
3
T
1
T
2
T
3
execute
execute
validate
validate
validate
persist
persist
Rückwärtsvalidierung
persist
execute
validate
persist
execute
Vorwärtsvalidierung
execute
VL Datenbank-Implementierungstechniken – 8–43
Optimistische Scheduler II
■
Rückwärtsvalidierung:
◆ Test von rs(Ti ) gegen ws(Tj ) für bereits
abgeschlossene Tj
◆ ausgenommen davon sind Tj , die bereits vor Beginn
von Ti ein commit ausgeführt haben
◆ bei Konflikt: Zurücksetzen von Ti
◆ im Beispiel: Test von rs(T1 ) gegen ws(T2 ) und ws(T3 )
■
Vorwärtsvalidierung
◆ Test von ws(Ti ) gegen rs(Tj ) für Transaktionen Tj , die
aktiv sind (also in der Ausführungsphase)
◆ bei Konflikt: Zurücksetzen von Tj
◆ im Beispiel: ws(T1 ) gegen rs(T2 ) und rs(T3 )
VL Datenbank-Implementierungstechniken – 8–44
Multiversionen-Synchronisation
■
engl. multiversion concurrency control (MVCC)
■
Umsetzung in Oracle, InterBase, PostgreSQL, . . .
■
Motivation
◆ Geg. Schedule s:
s = r1 (x)w1 (x)r2 (x)w2 (y)r1 (y)w1 (z)c1 c2
– s 6∈ CSR
– aber tolerierbar, wenn r1 (y) alte Version von y
lesen könnte, so dass r1 (y) konsistent zu r1 (x) ist
– dann: s äquivalent zu s0 = t1 t2
VL Datenbank-Implementierungstechniken – 8–45
MVCC: Prinzip
■
jede Änderungsoperation w erzeugt neue Version des
Datenobjektes
■
Leseoperationen können Version wählen
■
Versionen sind transparent für Applikationen
■
Vorteile:
Entkopplung von Lese- und Änderungsoperationen ;
Lesetransaktion hat Sicht auf Datenbank wie bei BOT
◆ keine Synchronisation von Lesetransaktionen sowie
gegen Lesetransaktionen notwendig ; Reduzierung
der Konfliktwahrscheinlichkeit
◆ Synchronisation von Änderungsoperationen durch
andere Verfahren (Sperrverfahren,
Zeitstempelverfahren, etc.)
◆
VL Datenbank-Implementierungstechniken – 8–46
MVCC: Beispiel
T1
T2
w(x0 → x1 )
w(y0 → y1 )
TR
r(y0 )
commit
w(x1 → x2 )
commit
r(x0 )
VL Datenbank-Implementierungstechniken – 8–47
MVCC: Versionenverwaltung
■
Aufgabe: Bestimmung der zu lesenden Version
globaler Transaktionszähler T N C (transaction
number count)
◆ Commit-Zeitstempel cts und BOT-Zeitstempel bts für
Transaktion
◆ Schreibzeitstempel wts(x) für Objekt x
◆
VL Datenbank-Implementierungstechniken – 8–48
MVCC: Versionenverwaltung (II)
■
Commit einer Änderungstransaktion TU :
aktueller T N C -Wert als Commit-Zeitstempel cts
sowie Inkrementieren von T N C
◆ modifiziertes Objekt: Schreibzeitstempel
wts(x) = cts(TU )
◆
■
Lesetransaktion TR :
◆ aktueller T N C -Wert als BOT-Zeitstempel:
bts(TR ) = T N C
◆ hat Zugriff auf jüngste Version von x mit:
wts(x) < bts(TR )
VL Datenbank-Implementierungstechniken – 8–49
MVCC: Versionenverwaltung (III)
■
Aufgabe: Freigabe nicht mehr benötigter Versionen
(garbage collection)
BOT-Zeitstempel der ältesten Lesetransaktion:
bts_min
◆ Version xi von Objekt x kann gelöscht werden, falls
neuere Version xj existiert, so dass gilt:
◆
wts(xi ) < wts(xj ) < bts_min
VL Datenbank-Implementierungstechniken – 8–50
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 – 8–51
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 Sperren → effizient 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 – 8–52
Isolationsebenen II
Isolationsebene
Dirty
Unrepeatable
Phantom
Read
Read
Read
Read Uncommitted
+
+
+
Read Committed
–
+
+
Repeatable Read
–
–
+
Serializable
–
–
–
VL Datenbank-Implementierungstechniken – 8–53
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 – 8–54
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 – 8–55
Verteilte Transaktionen
VL Datenbank-Implementierungstechniken – 8–56
Anforderungen an verteiltes Commit
VL Datenbank-Implementierungstechniken – 8–57
Zwei-Phasen-Commit-Protokoll
VL Datenbank-Implementierungstechniken – 8–58
2PC: Ablaufschema
VL Datenbank-Implementierungstechniken – 8–59
2PC: Zustandsübergänge
VL Datenbank-Implementierungstechniken – 8–60
2PC: Probleme
VL Datenbank-Implementierungstechniken – 8–61
Varianten des 2PC
VL Datenbank-Implementierungstechniken – 8–62
Drei-Phasen-Commit-Protokoll
VL Datenbank-Implementierungstechniken – 8–63
Verteilte Synchronisation
VL Datenbank-Implementierungstechniken – 8–64
Zeitmarkenverfahren
VL Datenbank-Implementierungstechniken – 8–65
Transaktionen auf Replikaten
VL Datenbank-Implementierungstechniken – 8–66
Deadlock-Erkennung
VL Datenbank-Implementierungstechniken – 8–67
Transaktionsmonitore
Presentation Server
Presentation Server
Workflow Controller
Transaction Server
Transaction Server
VL Datenbank-Implementierungstechniken – 8–68
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 – 8–69
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 – 8–70
Herunterladen