Motivation:
geographisch verteilte Organisationsform
einer Bank mit ihren Filialen
Filialen sollen Daten lokaler Kunden
bearbeiten knnen
Zentrale soll Zugriff auf alle Daten
haben (z.B. fr Kontogutheissungen)
Terminologie
Kommunikationsmedien
Verteiltes Datenbanksystem
Station S1
Station S2
Kommunikationsnetz
Station S3
Client-Server-Architektur
Client C1
Client C2
Kommunikationsnetz
Server
...
lokales
Schema
lokales
DBMS
...
lokales
DBMS
lokale
DB
...
lokale
DB
Station S1
...
Station Sn
Fragmentierung
R1
Allokation
(Zuordnung)
R11
Station S1
R12
R2
R21
R3
R32
R33
Station S2
Station S3
8
Fragmentierung
Korrektheits-Anforderungen
Rekonstruierbarkeit
Vollstndigkeit
Disjunktheit
10
Beispielrelation Professoren
Professoren
PersNr
Name
Rang
Raum
Fakultt
Gehalt
Steuerklasse
2125
Sokrates
C4
226
Philosophie
85000
2126
Russel
C4
232
Philosophie
80000
2127
Kopernikus
C3
310
Physik
65000
2133
Popper
C3
52
Philosophie
68000
2134
Augustinus
C3
309
Theologie
55000
2136
Curie
C4
36
Physik
95000
2137
Kant
C4
Philosophie
98000
11
Horizontale Fragmentierung
abstrakte Darstellung:
R1
R2
R3
Fr 2 Prdikate p1 und p2 ergeben sich 4 Zerlegungen:
R1 := p1 p2(R)
R2 := p1 p2(R)
R3 := p1 p2 (R)
R4 := p1
p2 (R)
12
p1
Fakultt = Theologie
p2 Fakultt = Physik
p3 Fakultt = Philosophie
Abgeleitete horizontale
Fragmentierung
Beispiel Vorlesungen aus dem Universittsschema:
Zerlegung in Gruppen mit gleicher SWS-Zahl
2SWSVorls := _SWS=2 (Vorlesungen)
3SWSVorls := _SWS=3 (Vorlesungen)
4SWSVorls := _SWS=4 (Vorlesungen)
fr Anfragebearbeitung schlechte Zerlegung
14
2SWSVorls
PhysikProfs
3SWSVorls
PhiloProfs
4SWSVorls
15
TheolVorls
PhysikProfs
PhysikVorls
PhiloProfs
PhiloVorls
gelesenVon=PersNr
PhiloProfs
(PersNr = gelesenVon)
16
Vertikale Fragmentierung
abstrakte Darstellung:
R1
R2
17
Vertikale Fragmentierung
Beliebige vertikale Fragmentierung gewhrleistet keine
Rekonstruierbarkeit
2 mgliche Anstze, um Rekonstruierbarkeit zu garantieren:
jedes Fragment enthlt den Primrschlssel der
Originalrelation. Aber: Verletzung der Disjunktheit
jedem Tupel der Originalrelation wird ein eindeutiges
Surrogat (= knstlich erzeugter Objektindikator)
zugeordnet, welches in jedes vertikale Fragment des
Tupels mit aufgenommen wird
18
Vertikale Fragmentierung
(Beispiel)
fr die Universittsverwaltung sind PersNr, Name, Gehalt und
Steuerklasse interessant:
ProfVerw := PersNr, Name, Gehalt, Steuerklasse (Professoren)
fr Lehre und Forschung sind dagegen PersNr, Name, Rang,
Raum und Fakultt von Bedeutung:
Profs := PersNr, Name, Rang, Raum, Fakultt (Professoren)
Rekonstruktion der Originalrelation Professoren:
Professoren = ProfVerw AProfVerw.PersNr = Profs.PersNr Profs
19
Kombinierte Fragmentierung
a) horizontale Fragmentierung nach vertikaler Fragmentierung
R
R21
R22
R23
R1
R2
R32
20
Fall a)
Baumdarstellung der
Fragmentierungen (Beispiel)
Professoren
v
Profs
ProfVerw
PhysikProfs TheolProfs
Vorlesungen
PhiloProfs
PhysikVorls TheolVorls
PhiloVorls
22
Allokation
Dasselbe Fragment kann mehreren Stationen
zugeordnet werden
Allokation fr unser Beispiel ohne Replikationen
redundanzfreie Zuordnung
Station
SVerw
SPhysik
SPhilo
STheol
Bemerkung
zugeordnete Fragemente
Verwaltungsrechner
{ProfVerw}
Dekanat Physik
{PhysikVorls, PhysikProfs}
Dekanat Philosophie {PhiloVorls, PhiloProfs}
Dekanat Theologie {TheolVorls, TheolProfs}
23
Transparenz in verteilten
Datenbanken
24
Fragmentierungstranparenz
Beispielanfrage, die Fragmentierungstransparenz voraussetzt:
select Titel, Name
from Vorlesungen, Professoren
where gelesenVon = PersNr;
Beispiel fr eine nderungsoperation, die Fragmentierungstransparenz voraussetzt:
update Professoren
set Fakultt = Theologie
where Name = Sokrates;
25
Fortsetzung Beispiel
ndern des Attributwertes von Fakultt
Transferieren des Sokrates-Tupels aus Fragment PhiloProfs
in das Fragment TheolProfs (= Lschen aus PhiloProfs,
Einfgen in TheolProfs)
ndern der abgeleiteten Fragmentierung von Vorlesungen
(= Einfgen der von Sokrates gehaltenen Vorlesungen in
TheolVorls, Lschen der von ihm gehaltenen Vorlesungen
aus PhiloVorls)
26
Allokationstransparenz
27
Allokationstransparenz (Forts.)
unter Umstnden muss Originalrelation rekonstruiert werden
Beispiel:
Verwaltung mchte wissen, wieviel die C4-Professoren der
Theologie insgesamt verdienen
da Fragmentierungstransparenz fehlt muss die Anfrage
folgendermaen formuliert werden:
select sum (Gehalt)
from ProfVerw, TheolProfs
where ProfVerw.PersNr = TheolProfs.PersNr and
Rang = C4;
28
Lokale Schema-Transparenz
Der Benutzer muss auch noch den Rechner kennen, auf
dem ein Fragment liegt.
Beispielanfrage:
select Name
from TheolProfs at STheol
where Rang = C3;
29
Lokale Schema-Transparenz
(Forts.)
Ist berhaupt Transparenz gegeben?
Lokale Schema-Transparenz setzt voraus, dass alle Rechner
dasselbe Datenmodell und dieselbe Anfragesprache
verwenden.
vorherige Anfrage kann somit analog auch an Station
SPhilo ausgefhrt werden
Dies ist nicht mglich bei Kopplung unterschiedlicher DBMS.
Verwendung grundstzlich verschiedener Datenmodelle auf
lokalen DBMS nennt man Multi-Database-Systems (oft
unumgnglich in realer Welt).
30
Anfragebersetzung und
Anfrageoptimierung
Voraussetzung: Fragmentierungstransparenz
Aufgabe des Anfragebersetzers: Generierung eines
Anfrageauswertungsplans auf den Fragmenten
Aufgabe des Anfrageoptimierers: Generierung eines
mglichst effizienten Auswertungsplanes abhngig
von der Allokation der Fragmente auf den
verschiedenen Stationen des Rechnernetzes
31
Anfragebearbeitung bei
horizontaler Fragmentierung
Beispiel
select Titel
from Vorlesungen, Profs
where gelesenVon = PersNr and
Rang = C4;
Der entstandene algebraische Ausdruck heit kanonische Form
der Anfrage:
_Titel
_Rang=C4
A gelesenVon=PersNr
Algebraische quivalenzen
Fr eine effizientere Abarbeitung der Anfrage benutzt der
Anfrageoptimierer die folgende Eigenschaft:
(R1 R2) Ap (S1 S2) =
(R1 Ap S1) (R1 Ap S2) (R2 Ap S1) (R2 Ap S2)
Die Verallgemeinerung auf n horizontale Fragmente R1,...,Rn
von R und m Fragmente S1,...,Sm von S ergibt:
(R1 ... Rn) Ap (S1 ... Sm) =
(Ri A
Sj)
1in 1jm
Falls gilt:
Si = S Ep Ri mit S = Si ... Sn
Dann gilt immer:
Ri Ap Sj = fr i j
34
35
_Titel
_Titel
A gelesenVon=PersNr
A gelesenVon=PersNr
_Rang=C4
TheolVorls TheolProfs
_Titel
_Rang=C4
PhysikVorls
PhysikProfs
A gelesenVon=PersNr
_Rang=C4
PhiloVorls PhiloProfs
Auswertungen knnen lokal auf den Stationen STheol, SPhysik und SPhilo
ausgefhrt werden Stationen knnen parallel abarbeiten und lokales
Ergebnis voneinander unabhngig an die Station, die die abschliessende
Vereinigung durchfhrt, bermitteln.
36
Anfragebearbeitung bei
vertikaler Fragmentierung
Beispiel:
kanonischer Auswertungsplan:
_Name, Gehalt
_Gehalt>80000
A
TheolProfs
PhysikProfs PhiloProfs
ProfVerw
37
a1
b1
c1
c1
d1
e1
a2
b2
c2
c3
d2
e2
a3
b3
c1
c4
d3
e3
a4
b4
c2
c5
d4
e4
a5
b5
c3
c7
d5
e5
a6
b6
c2
c8
d6
e6
a7
b7
c6
c5
d7
e7
RAS
=
A
a1
B
b1
C
c1
D
d1
E
e1
a3
b3
c1
d1
e1
a5
b5
c3
d2
e2
39
Join-Auswertung in VDBMS
spielt kritischere Rolle als in zentralisierten Datenbanken
Problem: Argumente eines Joins zweier Relationen knnen auf
unterschiedlichen Stationen des VDBMS liegen
2 Mglichkeiten: Join-Auswertung mit und ohne Filterung
40
Join-Auswertung
Betrachtung des allgemeinsten Falles:
uere Argumentrelation R ist auf Station StR gespeichert
innere Argumentrelation S ist dem Knoten StS zugeordnet
Ergebnis der Joinberechnung wird auf einem dritten
Knoten StResult bentigt
41
42
Nested-Loops
43
2.
44
Transfer beider
Argumentrelationen
1.
2.
45
46
...
A
a1
a3
a5
R A (_C(R)
B
C
b1
c1
b3
c1
b5
c3
D
d1
d1
d2
E
e1
e1
e2
6 Attributwerte
A
a1
a2
a3
a4
a5
a6
a7
F S)
StResult
C
c1
c2
c3
c6
R
B
b1
b2
b3
b4
b5
b6
b7
C
c1
c2
c1
c2
c3
c2
c6
C
c1
c3
4 Attributwerte
D
d1
d2
E
e1
e2
S
D
d1
d2
d3
d4
d5
d6
d7
E
e1
e2
e1
e2
e3
e2
e6
_C
StR
_C(R) F S
StS
C
c1
c3
c4
c5
c7
c8
c5
15 Attributwerte
48
Alternative
Auswertungungsplne
1. Alternative:
...
StResult
A
F
_C
R
StR
StS
2. Alternative:
(R E _C(S)) A (_C(R) F S)
49
Effektive Anfrageoptimierung muss auf Basis eines Kostenmodells durchgefhrt werden und soll mehrere Alternativen
fr unterschiedliche Auslastungen des VDBMS erzeugen.
50
Transaktionskontrolle in VDBMS
Transaktionen knnen sich bei VDBMS ber mehrere
Rechnerknoten erstrecken
=
Recovery:
Redo: Wenn eine Station nach einem Fehler wieder
anluft, mssen alle nderungen einmal
abgeschlossener Transaktionen - seien sie lokal auf
dieser Station oder global ber mehrere Stationen
ausgefhrt worden - auf den an dieser Station
abgelegten Daten wiederhergestellt werden.
Undo: Die nderungen noch nicht abgeschlossener
lokaler und globaler Transaktionen mssen auf den
an der abgestrzten Station vorliegenden Daten
rckgngig gemacht werden.
51
EOT-Behandlung
Die EOT (End-of-Transaction)-Behandlung von globalen
Transaktionen stellt in VDBMS ein Problem dar.
Eine globale Transaktion muss atomar beendet werden,
d.h. entweder
commit: globale Transaktion wird an allen
(relevanten) lokalen Stationen festgeschrieben
oder
abort:
52
Problemlsung:
Zweiphasen-CommitProtokoll
gewhrleistet die Atomaritt der EOT-Behandlung
das 2PC-Verfahren wird von sog. Koordinator K
berwacht
gewhrleistet, dass die n Agenten (=Stationen im
VDBMS) A1,...An, die an einer Transaktion beteiligt
waren, entweder alle von Transaktion T genderten
Daten festschreiben oder alle nderungen von T
rckgngig machen
53
Nachrichtenaustausch beim
2PC-Protokoll (fr 4 Agenten)
A1
A1
A2
A2
PREPARE
A3
A3
A4
A4
FAILED/READY
COMMIT/ABORT
ACK
54
FAILED/READY
A1
COMMIT/ABORT
FAILED/READY
A2
COMMIT/ABORT
FAILED/READY
A3
A4
COMMIT/ABORT
56
Zustandsbergang beim
2PC-Protokoll: Koordinator
Bullet
= wichtigste Aktion(en)
Initial
EOT:
sende PREPARE
an alle Agenten
Bereit
Abgebrochen
Zustandsbergang beim
2PC-Protokoll: Agent
Timeout oder lokaler
Fehler entdeckt:
abort ins Log
sende FAILED
Wartend
PREPARE empfangen und
lokal alles okay:
Log-Eintrge ausschreiben
ready ins Log
sende READY
Bereit
ABORT empfangen:
abort ins Log
sende ACK
Abgebrochen
PREPARE empfangen:
sende FAILED
COMMIT empfangen:
commit ins Log
sende ACK
Festgeschrieben
Bullet
= wichtigste Aktion(en)
58
Fehlersituationen des
2PC-Protokolls
Absturz eines Koordinators
Absturz eines Agenten
verlorengegangene Nachrichten
59
Verlorengegangene
Nachrichten
_ PREPARE-Nachricht des Koordinators an einen Agenten
geht verloren oder
_ READY-(oder FAILED-)Nachricht eines Agenten geht
verloren
nach Timeout-Intervall geht Koordinator davon aus,
dass betreffender Agent nicht funktionsfhig ist und
sendet ABORT-Nachricht an alle Agenten (Transaktion
gescheitert)
_ Agent erhlt im Zustand Bereit keine Nachricht vom
Koordinator Agent ist blockiert, bis COMMIT- oder
ABORT-Nachricht vom Koordinator kommt, da Agent nicht
selbst entscheiden kann (deshalb schickt Agent eine
Erinnerung an den Koordinator)
62
Mehrbenutzersynchronisation
in VDBMS
Serialisierbarkeit
Zwei-Phasen-Sperrprotokoll in VDBMS
_
_
63
Serialisierbarkeit
Lokale Serialisierbarkeit an jeder der an den
Transaktionen beteiligten Stationen reicht nicht aus.
Deshalb mu man bei der Mehrbenutzersynchronisation
auf globaler Serialisierbarkeit bestehen.
Beispiel (lokal serialisierbare Historien):
S1
S2
Schritt T1
Schritt T1 T2
1.
2.
T2
r(A)
w(A)
3.
4.
w(B)
r(B)
T1 T2
64
Lokale Sperrverwaltung
globale Transaktion mu vor Zugriff/Modifikation eines
Datums A, das auf Station S liegt, eine Sperre vom
Sperrverwalter der Station S erwerben
Vertrglichkeit der angeforderten Sperre mit bereits
existierenden Sperren kann lokal entschieden werden
favorisiert lokale Transaktionen, da diese nur mit
ihrem lokalen Sperrverwalter kommunizieren mssen
65
Globale Sperrverwaltung
= alle Transaktionen fordern alle Sperren an einer
einzigen, ausgezeichneten Station an.
Nachteile:
zentraler Sperrverwalter kann zum Engpass des VDBMS
werden, besonders bei einem Absturz der SperrverwalterStation (rien ne vas plus)
Verletzung der lokalen Autonomie der Stationen, da auch
lokale Transaktionen ihre Sperren bei der zentralisierten
Sperrverwaltung anfordern mssen
zentrale Sperrverwaltung i.a. nicht akzeptabel
66
Deadlocks in VDBMS
67
Verteilter Deadlock
Schritt
0.
1.
2.
S1
T1
BOT
lockS(A)
r(A)
T2
Schritt
S2
T1
3.
4.
5.
6.
lockX(A)
7.
T2
BOT
lockX(B)
w(B)
lockS(B)
68
Timeout
betreffende Transaktion wird zurckgesetzt und erneut
gestartet einfach zu realisieren
Problem: richtige Wahl des Timeout-Intervalls:
zu lang schlechte Ausnutzung der Systemressourcen
zu kurz Deadlock-Erkennung, wo gar keine
Verklemmung vorliegt
69
Zentralisierte Deadlock-Erkennung
70
Dezentrale Deadlock-Erkennung
lokale Wartegraphen an den einzelnen Stationen
Erkennen von lokalen Deadlocks
= Erkennung globaler Deadlocks:
jeder lokale Wartegraph hat einen Knoten External,
der stationenbergreifenden Wartebeziehungen zu
externen Subtransaktionen modelliert
Zuordnung jeder Transition zu einem Heimatknoten,
von wo aus externe Subtransaktionen auf anderen
Stationen initiiert werden
Die Kante
External _ Ti
wird fr jede von auen kommende Transaktion Ti eingefhrt.
Die Kante
Tj _ External
wird fr jede von auen kommende Transaktion Tj dieser Station
eingefhrt, falls Tj nach auen geht.
71
Beispiel:
External _ T2 _ T1 _ External
S2:
External _ T1 _ T2 _ External
Deadlock-Vermeidung
optimistische Mehrbenutzersynchronisation:
nach Abschluss der Transaktionsbearbeitung wird
Validierung durchgefhrt
Zeitstempel-basierende Synchronisation:
Zuordnung eines Lese-/Schreib-Stempels zu jedem Datum
entscheidet, ob beabsichtigte Operation durchgefhrt
werden kann ohne Serialisierbarkeit zu verletzen oder ob
Transaktion abgebrochen wird (abort)
73
Sperrbasierte Synchronisation
wound/wait:
nur jngere Transaktionen warten auf ltere;
fordert ltere Transaktion Sperre an, die mit der von der
jngeren Transaktion gehaltenen nicht vertrglich ist, wird
jngere Transaktion abgebrochen
wait/die:
nur ltere Transaktionen warten auf jngere;
fordert jngere Transaktion Sperre an, die mit der von der
lteren Transaktion gehaltenen nicht kompatibel ist, wird
jngere Transaktion abgebrochen
74
Voraussetzungen fr
Deadlockvermeidungsverfahren
Vergabe global eindeutiger Zeitstempel als
Transaktionsidentifikatoren
lokale Zeit Stations-ID
lokale Uhren mssen hinreichend genau
aufeinander abgestimmt sein
75
Synchronisation
bei replizierten Daten
Problem:
Zu einem Datum A gibt es mehrere Kopien A1, A2, ..., An,
die auf unterschiedlichen Stationen liegen.
Eine Lesetransaktion erfordert nur eine Kopie,
bei nderungstransaktionen mssen aber alle bestehenden
Kopien gendert werden.
76
Quorum-Consensus Verfahren
Ausgleich der Leistungsfhigkeit zwischen Lese- und
nderungstransaktionen teilweise Verlagerung des
Overheads von den nderungs- zu den Lesetransaktionen
indem den Kopien Ai eines replizierten Datums A
individuelle Gewichte zugeordnet werden
Lesequorum Qr(A)
Schreibquorum Qw(A)
Folgende Bedingungen mssen gelten:
1. Qw(A) + Qw(A) > W(A)
2. Qr(A) + Qw(A) > W(A)
77
Beispiel
Station (Si)
Kopie (Ai)
Gewicht (wi)
S1
A1
S2
A2
S3
A3
S4
A4
W ( A) = wi(A) = 8
i =1
Qr(A) = 4
Qw(A) = 5
78
Zustnde
a) vor dem Schreiben eines Schreibquorums
Station
Kopie
Gewicht
Wert
Versions#
S1
S2
A1
A2
3
1
1000
1000
1
1
S3
S4
A3
A4
2
2
1000
1000
1
1
Kopie
Gewicht
Wert
Versions#
S1
S2
A1
A2
3
1
1100
1000
2
1
S3
S4
A3
A4
2
2
1100
1000
2
1
79