7 . V e rte ilte T ra n s a k tio n e n

Werbung
7.1
7.2
7.3
7.4
O. Kao
Systemaspekte Verteilter Systeme
Verteilte Datenbanksysteme
Verteilte Transaktionen
Dezentrale Koordination
Replikation
• Überblick
7. Verteilte Transaktionen
7-1
O. Kao
Systemaspekte Verteilter Systeme
7-2
Beispiel: multimediale Datenbank über Filme kann auf zwei Arten aus
mehreren lokalen Datenbanken aufgebaut werden
Lokale Datenbanken speichern Medien und Metainformationen, z.B.
Bilddatenbank mit Fotos von Schauspielern, Bilddatenbank mit
Keyframes aus verschiedenen Filmen, Videoserver sowie relationale
Datenbanken mit bibliografischen und Filmangaben
Jede lokale Datenbank enthält eine Teilmenge des Filmmaterials,
z.B. nach Herstellerland geordnet
In beiden Fällen ermöglicht eine zentrale Schnittstelle den Zugriff auf die
Daten in allen lokalen Datenbanken
• „Natürliche“ Datenverteilung: mehrere unabhängige Systeme mit
ihren lokalen Datenmengen werden zu einer Einheit kombiniert
Unter VDBS wird eine logisch integrierte Sammlung gemeinsam
genutzter Daten verstanden, die physikalisch auf einer Anzahl von
Knoten in einem Rechnernetzwerk verteilt ist
• Definition: Verteiltes Datenbanksystem (VDBS)
7.1 Verteilte
Datenbanksysteme
O. Kao
Systemaspekte Verteilter Systeme
DBMS = Datenbankmanagementsystem
Klassifikation Verteilter
Datenbanksysteme
7-3
O. Kao
Systemaspekte Verteilter Systeme
Zugriff auf alle Teile der
lokalen Datenbanken zentral über
ein einheitliches Schema
Fragmentierungsschicht:
Unterteilung der globalen
Operationen in Segmente für
einzelne Knoten ⇒ notwendige
Einschränkungen zur sinnvollen
Vereinigung der Teilergebnisse
Allokationsschicht: Zuordnung von
Fragmenten zu Knoten, besonders
wichtig in Kombination mit
Replikation, Scheduling, ….
• Homogene VDBS leiten sich aus
konventionellen DBS durch
Partitionierung der Daten auf
mehrere Knoten ab
Homogene VDBS
7-4
O. Kao
Systemaspekte Verteilter Systeme
7-5
Zentrale Schnittstelle zur Abfrage / Kombination der Ergebnisse
Lokaler Zugriff ohne Nutzung globaler Schnittstellen und -mechanismen
erlaubt ⇒ Mitgliedschaft im globalen System bleibt unsichtbar
• Vollintegrierte DBS: bereits vorhandene Datenbanken werden über
Konvertierungssubsysteme in ein neues globales System gekoppelt
• Partiell integrierte DBS
Umsetzungsschemata zur vollständigen Integration im globalen DBS
Schnittstellen (Gateways) für den Zugriff auf die lokalen Daten
Beispiel: Metasuchmaschinen geben Stichwörter nach syntaktischer
Anpassung in mehrere Suchmaschinen ein ⇒ Parallele Bearbeitung
Syntaktische Umwandlung betrifft die Formulierung der logischen
Ausdrücke, z.B. Wort1 AND Wort2 wird zu +Wort1+Wort2
• Verschiedene DBS auf den Knoten erlaubt ⇒ Vorteil der einheitlichen
Verteilung/Ausführung der Operationen existiert nicht mehr
• Die einzelnen Systeme verfügen über
Heterogene VDBS
O. Kao
Systemaspekte Verteilter Systeme
Lokale DBS erlauben – je nach
Autonomiegrad – die
Aufnahme von Teilen der
Daten im globalen Schema
Auf die anderen Daten kann
nur lokal zugegriffen werden
Hilfsschema legt die Regel für
die Datenkonvertierung fest,
z.B. 13. November 2000 in
2000/11/13
• Eng verbundene (Tightly
coupled) DBS verfügen über
ein globales konzeptionelles
Schema als Vereinigung von
Teilen der lokalen Schemata
Föderierte Datenbanksysteme
7-6
O. Kao
Systemaspekte Verteilter Systeme
Transaktionskontrolle muss auf alle beteiligten Knoten verteilt werden
⇒ Anpassung der bestehenden Verfahren notwendig
Berücksichtigung der Replikation
Alle Knoten müssen stets die aktuelle Version der Daten haben
• Dieses Allokationsproblem ist NP-vollständig ⇒ Einsatz von
Heuristiken
• Bei VDBS wird eine Transaktion in mehrere Subtransaktionen –
Agenten – unterteilt und an die entsprechenden Knoten versendet
Datenlokalität (Benötigte Daten auf einem Knoten) und
Nebenläufigkeit (Daten gleichmäßig über alle Knoten verteilt)
7-7
• Wesentliche Bedingungen aus Verteilung der Daten über die Knoten
• Kompromiss zwischen
Datenmanagement in verteilten
Datenbanksystemen
T
Client
T
O. Kao
Z
Y
X
T2
T1
Y
X
Systemaspekte Verteilter Systeme
T
Client
M
T22
P
T 12
N
T21
T11
7-10
Flache Transaktion: Die aktuelle Anforderung der Transaktion wird
abgeschlossen, bevor die nächste Anforderung abgesetzt wird
Verschachtelte Transaktion: Top-Level-Transaktion öffnet untergeordnete
Transaktionen, die wieder weitere Anforderungen absetzen können
• Transaktionsarten
Atomarität: Transaktion ist entweder bei allen Servern festgeschrieben
oder wird von allen Servern abgebrochen
⇒ Koordination durch einen/mehrere Server erforderlich
• Verteilte Transaktion greifen auf Objekte zu, die auf mehreren räumlich
getrennten Servern verteilt sind
7.2 Verteilte Transaktionen
T12
T1m
T22
T2m
Daten
Daten
Systemaspekte Verteilter Systeme
Ressourcenmanager
Ressourcenmanager
O. Kao
Scheduler
Tn2
Tnm
Daten
7-11
Ressourcenmanager
Scheduler
Transaktionsmanager
Tn1
Kommunikationsnetz
Transaktionsmanager
T21
Scheduler
Transaktionsmanager
T11
Architektur verteilter
Transaktionssysteme
O. Kao
Systemaspekte Verteilter Systeme
7-12
Knotenfehler: Der Knoten stoppt sofort und führt keinerlei Operationen
mehr durch ⇒ Der Inhalt des flüchtigen Speichers geht verloren und der
Knoten muss eine Restart-Operation durchführen
Netzfehler: Ausfall der Verbindung, Fehler in Kommunikationssoftware,
Ausfall eines Zwischenknoten, Nachrichtenverlust und -verfälschung
• Fehlerarten
Homogene Umgebung existiert ⇒ Jeder Knoten besteht aus einem lokalen
Transaktionsverwaltungssystem
Jeder Knoten verwaltet einen Teil der Daten
Jedes Datum befindet sich auf genau einem Knoten (keine Redundanz)
Eine Transaktion sendet Operationen an lokalen Transaktionsmanager TM
Falls das Datum lokal nicht verfügbar ist, wird eine Anforderung an den
TM geschickt, bei dem das Datum sich befindet
Bei Commit oder Abort muss der TM alle Knoten verständigen, die von der
Transaktion betroffen waren
• Annahmen
Architektur verteilter
Transaktionssysteme (2)
O. Kao
join
join
b.withdraw(3);
a.withdraw(4);
7-13
Teilnehmer
c.deposit(4);
C
D
d.deposit(3);
Filiale Z
B
Filiale Y
Teilnehmer
A
Filiale X
Teilnehmer
Systemaspekte Verteilter Systeme
join
b.withdraw(T, 3);
.
Koordinator ist einer der Server, z.B. Filiale X
T =openTransaction
a.withdraw(4);
c.deposit(4);
b.withdraw(3);
d.deposit(3);
closeTransaction
T
Client
openTransaction
closeTransaction
Verwalter öffnet die Transaktion, vergibt systemweit-eindeutige ID
Verwalter wird zur Koordinator für die gesamte Transaktion ⇒
Verantwortung für Annahme/Abbruch der Transaktion
Teilnehmer = Server, die benötigte Objekte bereitstellen
• Client startet eine verteilte Transaktion durch eine openTransaction
Anforderung an einen Transaktionsverwalter auf beliebigem Server
Koordinator einer Verteilten
Transaktion
O. Kao
Systemaspekte Verteilter Systeme
• Bei Aufruf von closeTransaction besitzt der Koordinator Verweise
auf alle Teilnehmer
• Sicherstellung der Atomaritätseigenschaft mit sog. CommitProtokollen
7-14
Koordinator erstellt Liste mit Verweisen auf alle Teilnehmer
Teilnehmer notieren den Koordinator
Hinzufügen von weiteren Teilnehmern mit der Funktion join(Trans-ID,
Verweis auf neuen Teilnehmer)
⇒ Koordinator wird über die Neuzugänge informiert
• Während der Ausführung der verteilten Transaktion
Koordinator einer Verteilten
Transaktion (2)
O. Kao
RM
Daten
Daten
Sch.
TM
RM
TM
T11 T12 T1m T21 T22 T
2m
Systemaspekte Verteilter Systeme
Zentrale darf nicht ausfallen
Eingeschränkte Skalierbarkeit
Eingeschränkte Knotenautonomie
Auch ausschließlich lokale
Transaktionen müssen sich an den
zentralen Planer wenden ⇒ unnötiger
Aufwand
• Nachteile
2PL-Sperrprotokoll: Globale Sicht auf
die Sperrsituation, wie im lokalen Fall
Optimistische Verfahren: Nach
Abschluss muss jede Transaktion
ihren r/w-Set an die zentrale
Validierungsstelle senden
• Zentraler Planer verwaltet alle
Transaktionen
Koordination durch zentralen
Planer
7-15
Daten
RM
TM
Tn1 Tn2 Tnm
O. Kao
Systemaspekte Verteilter Systeme
7-16
• Einfachste Realisierung: Koordinator fordert alle Teilnehmer solange
auf, die aktuelle Transaktion zu bestätigen/abbrechen, bis alle
geantwortet haben (Ein-Phasen-Commit-Protokoll, 1PC)
1. Alle Knoten, die eine Entscheidung treffen, treffen dieselbe Entscheidung
2. Ein Knoten kann seine Entscheidung nicht nachträglich ändern
3. Die Entscheidung, eine Transaktion zu bestätigen, kann nur von allen
Knoten einstimmig getroffen werden
4. Falls keine Ausfälle vorliegen und alle Knoten zugestimmt haben, wird
die Transaktion bestätigt
5. Nach Behebung von Ausfällen muss eine Entscheidung getroffen werden
• Gewährleistung der Korrektheit eines Transaktionskonzepts ist
schwierig, da es im verteilten Fall einer Abstimmung der Knoten
bedarf und Ausfälle nicht ausgeschlossen werden können
• Anforderung an ein atomares Commit-Protokoll (ACP) für verteilte
Transaktionen
7.3 Dezentrale Koordination
O. Kao
Systemaspekte Verteilter Systeme
• Probleme: Sicherstellung, dass alle Teilnehmer abstimmen und die
getroffene Entscheidung tatsächlich umsetzen
7-17
Jeder Knoten unterhält eine spezielle Log-Datei mit relevanten Ereignissen
In der ersten Vorbereitungsphase (Abstimmphase) wird abgestimmt, ob
die Transaktion festgeschrieben oder abgebrochen wird
Ist einmal ein Votum abgegeben, so darf das Votum nicht geändert
werden auch wenn das System ausfällt ⇒ alle relevanten Daten müssen
im stabilen Speicher zusammen mit dem Status prepared sein
In der zweiten Phase (Abschlussphase) wird die getroffene Entscheidung
von jedem Teilnehmer durchgeführt
• Probleme bei 1PC: Ein Server kann die Transaktion nicht einseitig
abbrechen, z.B. wenn Konflikte oder Deadlocks aufgetreten sind
• Bei 2PC kann jeder Teilnehmer seinen Transaktionsteil abbrechen und
somit den Abbruch der gesamten Transaktion herbeiführen
• Grundidee
Zwei-Phasen-Commit-Protokoll
(2PC)
•
•
O. Kao
Systemaspekte Verteilter Systeme
7-18
ob er eine Transaktion festschreiben kann. Teilnehmer stimmt ab
doCommit(trans): Koordinator->Teilnehmer: Festschreiben der Transaktion
doAbort(trans) : Analog zu doCommit(), jetzt aber mit Abort
haveCommitted(trans, participant) : Teilnehmer->Koordinator: Transaktion
festgeschrieben
getDecision(trans) -> Yes / No: Teilnehmer->Koordinator mit Frage nach
Entscheidung über Transaktion, für die er mit Yes gestimmt hat aber noch
keine Antwort kam ⇒ Timeout zur Erkennung von Serverabstürzen
Das 2PC-Protokoll besteht aus vier Schritten
1. Aufforderung zur Stimmabgabe (vote request)
2. Stimmabgabe (vote)
3. Mitteilung über die Entscheidung (decision)
4. Bestätigung der Entscheidung (acknowledge)
Einzelne Operationen
canCommit?(trans)-> Yes / No: Aufruf vom Koordinator an den Teilnehmer,
Zwei-Phasen-Commit-Protokoll (2)
festgeschrieben
fertig
3
O. Kao
Vorbereitet auf
Festschreiben
(Wartet auf Stimmen)
1
Vorbereitet auf
Festschreiben
(unsicher)
Festgeschrieben
2
4
Systemaspekte Verteilter Systeme
haveCommitted
doCommit
Yes
canCommit?
Status
Schritt
Status
Schritt
Teilnehmer
Koordinator
• Koordinator fragt alle Teilnehmer canCommit() und sammelt die
Antworten
• Koordinator wertet alle Stimmen (auch die eigene) aus
Falls alle mit Yes gestimmt haben, so wird die Anweisung zum
Festschreiben doCommit() verteilt
Andernfalls wird die Transaktion abgebrochen doAbort()
• Alle Teilnehmer warten auf den Befehl, bestätigen die Ausführung
• Falls Bestätigung ⇒ haveCommited Nachricht an den Koordinator
Ablauf bei 2PC
7-19
O. Kao
Systemaspekte Verteilter Systeme
7-20
2PC kann mehrere Server-/Kommunikationsfehler tolerieren und wird
garantiert irgendwann abgeschlossen. Die Vorgabe einer Zeitgrenze ist
allerdings nicht möglich
Die Verzögerung bei der Ausführung von 2PC kann dazu führen, dass
einige Teilnehmer in einen unsicheren (ungewissen) Zustand geraten
Besonders kompliziert, wenn der Koordinator ausgefallen ist und auf
keine getDecision() Anforderung reagiert
⇒ Drei-Phasen-Commit-Protokolle (3PC) zur Reduktion der
Verzögerungen
• Ausfall- und Fehleranfälligkeit
Organisation der Koordinatoraktivitäten notwendig sind
• Kosten für das 2PC im fehlerfreien Fall sind bei N Teilnehmern
proportional zu 3N Nachrichten
Je N Nachrichten für canCommit, Yes/No und doCommit
haveCommited-Nachrichten werden nicht mitgezählt, da diese für die
Leistung des 2PC
O. Kao
Systemaspekte Verteilter Systeme
Der Verwaltungsaufwand ist deutlich höher, insgesamt werden 6N
Nachrichten und 3(N+1) Log-Vorgänge notwendig
• 3PC verhindert diese Situation, indem es sicherstellt, dass kein
Knoten Commit entschieden haben kann, solange noch ein nicht
ausgefallener Knoten ungewiss ist
• Allerdings
7-21
Blockieren im 2PC resultiert aus einer Situation, in der alle nicht
ausgefallenen Knoten im Zustand uncertain (ungewiss) sind und nicht
einseitig Abort entscheiden können, weil einige Knoten vielleicht schon
Commit entschieden haben
• Idee
Höchstens K<N Rechner fallen aus, K Verfahrensparameter
• 3PC-Protokoll: nicht-blockierende Verbesserung des 2PC-Protokolls
• Voraussetzung
Drei-Phasen-Commit-Protokoll (3PC)
O. Kao
Systemaspekte Verteilter Systeme
Teilnehmer gesendet ⇒ Teilnehmer schreiben die Daten fest
7-22
• Phase 3: Koordinator sammelt alle Bestätigungen
Wurden alle empfangen, wird commit ausgeführt und doCommit an alle
Anforderungen an die Teilnehmer
Teilnehmer protokollieren und bestätigen die preCommit-Anforderungen
• Phase 2: Koordinator nimmt Zwischenzustand (preCommit) ein ⇒
der Koordinator sichert zu, dass er von sich aus die Transaktion nicht
mehr abbrechen wird. Allerdings, falls er ausfällt ist ein Zurücksetzen
immer noch möglich
Koordinator protokolliert den Zustand und sendet preCommit-
Behandlung des Abort-Falls (mind. 1 Knoten stimmt mit Abort) wie 2PC
Yes: alle Knoten antworten mit Yes ⇒ zusätzliche Phase ⇒ Einsatz 3PC
• Phase 1: Analog zur ersten Phase von 2PC
• Der Koordinator sammelt die Stimmen und trifft eine Entscheidung
No: Abbruch und Information der mit Yes abgestimmten Teilnehmer ⇒
Ablauf bei 3PC
Logging preCommit
fertig
Logging preCommit
fertig
3
5
acknowledge
preCommit ack
Commit
preCommit
Yes
6
4
2
Logging Commit
Sperrfreigabe
Logging preCommit
Vorbereitet auf
Festschreiben
(ungewiss)
O. Kao
Systemaspekte Verteilter Systeme
7-23
Alle aktiven Teilnehmer wählen einen neuen Koordinator
Damit der neue Koordinator die commit-Behandlung fortführen kann,
wird ein Terminierungsprotokoll gestartet
• Ein Koordinatorausfall wird durch Time-Outs erkannt
Vorbereitet auf
Festschreiben
(Wartet auf Stimmen)
1
canCommit?
Status
Schritt
Status
Schritt
Teilnehmer
Koordinator
Ablauf bei 3PC (2)
O. Kao
Systemaspekte Verteilter Systeme
7-24
• Der neue Koordinator sammelt die Zustandsinformation aller
Teilnehmer und verfährt nach den folgenden Regeln
R1: Falls ein Knoten im Zustand finished oder aborted ist, so lautet die
Entscheidung abort
R2: Falls irgendein Knoten im Zustand commit ist, lautet die Entscheidung
commit
R3: Sind alle Knoten im Zustand uncertain, lautet die Entscheidung abort
R4: Sind einige Knoten im Zustand preCommit, aber keiner im Zustand
commit, sendet er preCommit an alle Knoten
• Nach Eingang der Quittungen (Ack) kann commit entschieden
werden
• Teilnehmer, die ihren Zustand nicht melden, werden ignoriert
3PC-Terminierungsprotokoll
O. Kao
Systemaspekte Verteilter Systeme
7-25
Die restlichen Knoten starten das Terminierungsprotokoll
Der (gewählte) neue Koordinator sammelt die Zustände der
operationalen Knoten (alle uncertain) und beschließt gemäß Regel
R3 abort
Ausgefallene Knoten starten nach dem Restart das
Terminierungsprotokoll und erfahren die Entscheidung abort
Obwohl sie bereits preCommit erhalten hatten, entscheiden sie Abort
• Angenommen, die Knoten im Zustand preCommit fallen ebenfalls
aus
uncertain
• Alle Teilnehmer haben mit Yes gestimmt
• Der Koordinator beginnt, preCommit zu verschicken, fällt aber aus,
so dass nur ein Teil der Knoten die Nachricht erhält
• Einige Knoten sind im Zustand preCommit, die anderen im Zustand
Beispiel zu 3PC
A
R1
(Paderborn)
O. Kao
R2
(Kassel)
Systemaspekte Verteilter Systeme
B
• Beispiel: Replizierte Kontodaten
R3
(Frankfurt)
Steigerung der Verfügbarkeit
Daten werden auf k Knoten kopiert ⇒ Daten bleiben auch beim
Ausfall von k-1 Knoten erhalten
Leistungssteigerung
Parallele Ausführung der Lesezugriffe für die gleichen Daten
Verringerung der Anzahl notwendiger Kommunikationsvorgänge
durch Unterstützung der Datenlokalität
• Ziele der Replikation
7.4 Replikation
7-26
A
B
O. Kao
Systemaspekte Verteilter Systeme
Es werden nur solche Schedules zugelassen, die zu serialisierbaren
Schedules auf einer nicht-redundanten Datenbank äquivalent sind
Insbesondere muss dies auch für mögliche Fehlerfälle gelten
• Anforderungen für Synchronisationsprotokolle, die das
Korrektheitskriterium der 1-Kopie-Serializierbarkeit unterstützen
Automatische, transparente Aktualisierung aller Repliken, sobald ein
Datum verändert wird
Aufrechterhaltung der Datenkonsistenz unter Berücksichtigung aller
Repliken
• Verwaltung replizierter Daten erhöht den Speicherbedarf und die
Kommunikationsleistung bei Schreibzugriffen
• Hoher Implementierungsaufwand, da ein verteiltes DBS die
Existenz der replizierten Daten für den Benutzer transparent sein
soll
Probleme mit replizierten
Daten
7-27
O. Kao
Systemaspekte Verteilter Systeme
7-28
Write-All-Ansatz: Synchrone Aktualisierung aller replizierten Kopien
Primary-Copy-Verfahren: Sofortige Aktualisierung einer Masterkopie,
die Veränderungen werden mit etwas Verspätung weitergegeben
Voting-Verfahren: Jede der Repliken bekommt eine oder mehrere
Stimmen zugeordnet. Bei jedem Schreib- oder Lesezugriff muss die
Mehrheit dieser Stimmen durch Sperren der entsprechenden Objekte
gewonnen werden
• Drei wichtigste Verfahrensklassen für die Aktualisierung und
Synchronisation auf replizierten Datenbanken
Ansätze
O. Kao
Systemaspekte Verteilter Systeme
7-29
Alle Lesezugriffe der Zentrale (R2) werden auf replizierten Daten und
ohne Verzögerung ausgeführt
Zugriff auf alle Daten trotz Ausfalls von einem der Rechner möglich
Allerdings erfordert die Aktualisierung der Kontodaten das Sperren
und die synchrone Aktualisierung beider Kopien
• Beispiel zu ROWA-Strategie (siehe Skizze auf Folie 7-33)
Synchrone Änderung aller Replikate vor Abschluss der
Änderungstransaktion
⇒ Jedes Replikat ist auf dem aktuellen Stand und kann für die
Lesezugriffe verwendet werden
⇒ Auswahl beim Lesen erfolgt basierend auf minimaler Kommunikation
oder Auslastung der einzelnen Knoten
⇒ Einzelne Knotenausfälle können problemlos kompensiert werden
• Bekanntestes Variante: Write-All-Read-Any oder auch Read-OnceWrite-All (ROWA) Strategie genannt
Varianten des Write-AllAnsatzes
O. Kao
Systemaspekte Verteilter Systeme
7-30
Die replizierten Datensätze werden nur auf den verfügbaren Rechnern
aktualisiert
Bei ausgefallenen Rechnern werden alle Aktualisierungen protokolliert
und beim nächsten Start nachgeholt
Probleme entstehen, wenn sich die Knoten in unterschiedlichen
Netzwerkpartitionen befinden
• Abgeschwächte Forderung Write-All-Available-Read-Any
Fällt nur einer der replizierten Knoten aus, so ist die gesamte
Datenbank nicht mehr funktionsfähig, da alle Knoten mit Replikaten
berücksichtigt werden müssen
• Entscheidender Nachteil: Ausfallsicherheit schlechter als bei nichtredundanten Datenbanken
Vor dem Zugriff muss eine Schreibsperre auf allen replizierten
Datensätzen – auf unterschiedlichen Knoten – erworben werden
Alle Knoten müssen an dem Commit-Protokoll beteiligt werden
• Änderung der Sperrprotokolle erforderlich
Nachteile der ROWA-Strategie
O. Kao
Systemaspekte Verteilter Systeme
7-31
Anforderung von Schreibsperren für alle Replikate (wie bei ROWA),
allerdings wird nur die primäre Kopie synchron aktualisiert
Die Sperre geht in Besitz des Primary-Copy-Rechners über, der dann
nach und nach die Replikate aktualisiert und erst nach Abschluss alle
Sperren wieder frei gibt
• Nachteil: Verzögerte Anpassung der Replikate
• Realisierung des Primary-Copy-Protokolls
Aktualisierungsnachrichten werden gebündelt und zusammen zum
Zielknoten übertragen
Primärkopien werden auf unterschiedlichen Knoten gespeichert, um
Engpässe zu vermeiden
• Effizienzvorteil
Effiziente Bearbeitung von Änderungen, indem nur ein Replikat – so
genannte Primärkopie – sofort aktualisiert wird
Die anderen Kopien werden asynchron vom Primary-Copy-Rechner aus
und sobald möglich (as soon as possible) aktualisiert
• Ziel
Primary-Copy-Verfahren
O. Kao
Systemaspekte Verteilter Systeme
7-32
Lesezugriff auf Primärkopie: Alle Lesetransaktion referenzieren nur die
primäre Kopie ⇒ keine Lokalität/Parallelität, lediglich Ausfallsicherheit
Lesezugriff auf lokale Kopien, Sperranforderung beim Primary-CopyRechner: Nur die Sperren werden beim primären Rechner positioniert,
die Zugriffe selbst können auf einem anderen Rechner erfolgen
Beim Sperren wird überprüft, ob das Datum aktualisiert werden
muss und ggf. die Aktualisierung bevorzugt behandelt
Entlastung des Primary-Copy-Rechners
Lokale Abwicklung von Lesezugriffen: Inkonsistenzen – in praktischen
Anwendungen von wenigen Sekunden – werden in Kauf genommen
und auf die Daten ohne vorherige Überprüfung der Primärkopie
zugegriffen ⇒ Anwendung nur in speziellen Fällen tolerierbar
• Schreibsperren werden nur noch zentral auf der Primärkopie
angefordert ⇒ Anzahl von Sperrkonflikte wird reduziert
• Behandlung der Lesezugriffe wegen eventuell veralteter,
inkonsistenter Daten erforderlich
Alternativen zum Primary-CopyProtokoll
O. Kao
Systemaspekte Verteilter Systeme
7-33
Primärkopie nicht erreichbar ⇒ keine Transaktion kann ausgeführt
werden, wenn sie diese Daten benötigt
Ausweg: Wahlalgorithmen zur Bestimmung einer neuen Primärkopie.
Vorraussetzung ist allerdings, dass die Repliken auf dem aktuellen Stand
sind bzw. gebracht werden können
• Was passiert, wenn der Knoten mit der Primärkopie ausfällt?
Die Primärkopien der Kontodatensätze liegen auf den Filialrechnern (R1
hält Primärkopie von A und R3 von B)
Sämtliche Lese- und Schreibzugriffe können lokal durchgeführt werden,
Kommunikation nur bei Kontenzugriffe der Zentrale (R2), d.h. Sperren
und Aktualisieren der Primärkopien
Strategie 1 verlangt Sperren und Lesen der Primärkopie ⇒
Nachrichten für Objektzugriff und Commit
Strategie 2 erfordert Nachrichten für Sperranforderung und –freigabe
Strategie 3 ist z.B. für globale Auswertungen ausreichend
• Annahmen
Beispiel zu Primary-CopyVerfahren
O. Kao
Systemaspekte Verteilter Systeme
7-34
• Vorteil: Objekte auch bei mehreren Knotenausfällen referenzierbar
• Nachteil: Jede Zugriff verlangt mehrere Nachrichten zur
Sicherstellung der Mehrheit
Die Transaktion muss die Mehrheit der Repliken des benötigten
Objekts sperren (Sperre = Stimme)
Beim Lesen wird analog eine Mehrheit der Repliken mit Lesesperren
belegt und ein Element referenziert
Somit ist es sichergestellt, dass das Objekt nicht von einer anderen
Transaktion zwischenzeitlich verändert werden kann
Mindestens ein der Replikate befindet sich auf dem aktuellen Stand
⇒ Aktualität der Replikate wird durch einen Änderungszähler festgestellt
• Vor jedem Zugriff auf ein repliziertes Datum müssen ausreichend
viele Stimmen (votes) gesammelt werden
• Mehrheits-Votum
Voting-Verfahren
O. Kao
Systemaspekte Verteilter Systeme
7-35
Je kleiner r bzw. w, desto schneller sind die Lese- bzw. Schreibzugriffe
Erhöhte Verfügbarkeit, da einige Rechner ausfallen dürfen
Lesebevorzugung geht auf Kosten der Schreiboperationen und umgekehrt
• Durch die Gewichte können sowohl die Kosten für Schreib/LeseZugriffe als auch die Verfügbarkeit bestimmt werden
Bedingung w>v/2 garantiert, dass kein Objekt gleichzeitig von mehr als 1
Transaktion geändert wird
Bedingung r+w>v verhindert, dass ein Objekt gleichzeitig gelesen und
geschrieben wird. Ferner wird sichergestellt, dass mindestens ein Objekt
zum letzten Schreib-Quorum gehörte
• Jedem Replikat eines Objektes wird ein bestimmtes Gewicht
(Stimmenanzahl) zugeordnet
• Zum Lesen bzw. Schreiben eines Datums wird eine bestimmte Anzahl
von Stimmen (Lese-Quorum bzw. Schreib-Quorum) gesammelt
• Es seien insgesamt v Stimmen möglich und r/w Lese/Schreib-Quorum
Gewichtetes Voting
(Quorum Consensus)
O. Kao
Systemaspekte Verteilter Systeme
Lesezugriffe können auf R1 lokal ausgeführt werden
Bei Schreibzugriffen sind allerdings mindestens 3 Rechner beteiligt.
Nach Ausfall von R1 ist das Objekt nicht mehr modifizierbar
• Lesezugriffe werden gegenüber von Schreibzugriffen bevorzugt,
wenn z.B. r=2 und w=4 gilt
7-36
Durch Bevorzugung von R1 ist ein schnellerer Zugriff auf die Daten
von R1 gewährleistet
Zugriff ist auch nach Ausfall von jedem der Rechner möglich. Wenn R1
intakt bleibt, dürfen auch zwei Rechner ausfallen
• Objekt A sei an vier Rechnern R1 bis R4 repliziert
• Stimmenverteilung <2,1,1,1>, d.h. R1 hat 2 Stimmen
• Wählt man r = 3 und w = 3, so sind 2 oder 3 Rechner bei jeder
Transaktion involviert
Beispiel zu Quorum-Verfahren
O. Kao
Systemaspekte Verteilter Systeme
• Hauptnachteil der Voting-Verfahren ist die geeignete Wahl der
Parameter, insbesondere wenn diese ohne oder mit geringer
Beteiligung des Systemverwalters erfolgen sollen
7-37
Mehrheitsverfahren: Jedes Replikat hat das gleiche Gewicht (1
Stimme)
ROWA-Verfahren: Jedes Replikat hat eine Stimme. Ferner ist r=1 und
w=v=Anzahl Replikate
Primary-Copy: Primärkopie bekommt 1 Stimme, alle anderen Replikate
bekommen keine Stimme und r=w=1 ⇒ Lesezugriffe müssen an
Primärkopie gerichtet werden, Repliken ohne Stimme werden ohne
Konsistenzzusicherung genutzt
• Durch spezielle Parameterwahl lassen sich das Mehrheits- und
das ROWA-Verfahren sowie eines der Primary-Copy-Protokolle
nachbilden
Vor- und Nachteile des
Quorum-Verfahrens
O. Kao
Systemaspekte Verteilter Systeme
CREATE SNAPSHOT underflow AS
SELECT KNR, KTONR, KTOSTAND
FROM KONTO WHERE KTOSTAND <0
REFRESH EVERY DAY
• Beispieldefinition
7-38
Entspricht materialisierten durch eine DB-Anfrage spezifizierten Sicht
Ergebnis der Anfrage wird als eigenständiges DB-Objekt unter einem
benutzerspezifizierten Namen abgelegt
Zugriff auf einen Schnappschuss erfolgt mit der jeweiligen DBAnfragesprache, nur Lesezugriffe zulässig
• Replikationsaufwand erhöht sich deutlich, wenn die Komponenten
geographisch weit verteilt sind und die Aktualisierungskosten
aufgrund der langsamen Netze noch höher sind
• Verringerung der Aktualisierungskosten durch Einführung von
Schnappschüssen (snapshots)
• Definition Schnappschuss
Schnappschuss-Replikation
O. Kao
Systemaspekte Verteilter Systeme
7-39
Qualität geringer als bei „echter“ Replikation ⇒ Daten im kontrollierten
Maß veraltet
Veraltete Daten reduzieren den Wert des Schnappschusses im Fehlerfall
• Nachteile
Durch Bindung an DB-Sprachen können beliebige Informationen (auch
aggregierte Informationen, Verknüpfungen, … ) zusammengefasst werden
Entlastung des Primary-Copy-Rechners, da alle Zugriffe lokal und ohne
Kommunikation erfolgen
Kein Synchronisationsproblem, da lediglich Leseoperationen zulässig
• Vorteile
Schnappschuss entspricht einer Kopie der Teilmenge aller überzogenen
Konten
Schnappschuss wird in explizit angegebenen Abschnitten aktualisiert
(REFRESH – Angabe)
• Im Beispiel
Eigenschaften des
Schnappschusses
O. Kao
Systemaspekte Verteilter Systeme
7-40
Quasi-Kopien: Verwendung von anwendungsbezogenem Wissen, um
die Aktualisierungen bei bedeutender Veränderung weiterzugeben
• Varianten
Ersatzteillisten bei KFZ-Betrieben
Buchkataloge in Bibliotheken
Telefonbücher
Andere Verzeichnisse, auf die vorwiegend lesend zugegriffen wird
⇒ Reduzierter Kommunikationsaufwand ist an dieser Stelle wichtiger als
die 100% Aktualität (auf Sekunde/Minute/Stunde genau)
• Die schwache Form der Replikation wird z.B. angewendet bei
Anwendungen für
Schnappschuss-Replikation
Herunterladen