vs6.1.21 6.1.2 sequentielle konsistenz (lamport 1979) def.: sequentielle konsistenz (sequential...
TRANSCRIPT
![Page 1: Vs6.1.21 6.1.2 Sequentielle Konsistenz (Lamport 1979) Def.: Sequentielle Konsistenz (sequential consistency): Effekt/Ergebnisse einer verteilten Programmausführung](https://reader036.vdocuments.mx/reader036/viewer/2022062521/570491be1a28ab14218d8148/html5/thumbnails/1.jpg)
vs6.1.2 1
6.1.2 Sequentielle Konsistenz(Lamport 1979)
Def.: Sequentielle Konsistenz (sequential consistency):
Effekt/Ergebnisse einer verteilten Programmausführung auf repliziertem Objekt
=Effekt/Ergebnisse einer äquivalenten sequentiellen Ausführung
auf nichtrepliziertem Objekt
(impliziert Serialisierbarkeit des nichtreplizierten Objekts;Bestandteil von one-copy serializability [ 7] )
![Page 2: Vs6.1.21 6.1.2 Sequentielle Konsistenz (Lamport 1979) Def.: Sequentielle Konsistenz (sequential consistency): Effekt/Ergebnisse einer verteilten Programmausführung](https://reader036.vdocuments.mx/reader036/viewer/2022062521/570491be1a28ab14218d8148/html5/thumbnails/2.jpg)
vs6.1.2 2
A rep.Obj.
w(x)
CB
sequentiell konsistent:
D
w(y)
r()y
r()y
r()xr()x
A rep.Obj.
w(x)
CB
nicht sequentiell konsistent:
D
w(y) r()x
r()y
r()y r()x
![Page 3: Vs6.1.21 6.1.2 Sequentielle Konsistenz (Lamport 1979) Def.: Sequentielle Konsistenz (sequential consistency): Effekt/Ergebnisse einer verteilten Programmausführung](https://reader036.vdocuments.mx/reader036/viewer/2022062521/570491be1a28ab14218d8148/html5/thumbnails/3.jpg)
vs6.1.2 3
Idee: Totalgeordnete Rundrufe an die Replikatverwalter
Ausgezeichneter Replikatverwalter arbeitet als Koordinatorwie der Sequencer aus 5.2.3; sein Replikat heißt Primärkopie
Änderungen werden zunächst an der Primärkopie vorgenommenund dann an die Sekundärkopien weitergeleitet
Sowohl aktive als auch passive Replikation möglich(passiv ist besser, wenn Replikate dynamisch kommen und gehen!)
Operationen synchron oder asynchron; falls synchron, wartetKlient auf Quittung des Koordinators
Nichtmodifizierende Operation liest unter Umgehung desKoordinators aus der „nächstliegenden“ Kopie!
![Page 4: Vs6.1.21 6.1.2 Sequentielle Konsistenz (Lamport 1979) Def.: Sequentielle Konsistenz (sequential consistency): Effekt/Ergebnisse einer verteilten Programmausführung](https://reader036.vdocuments.mx/reader036/viewer/2022062521/570491be1a28ab14218d8148/html5/thumbnails/4.jpg)
vs6.1.2 4
Beobachtungen:
1. Jede Kopie hat die gleiche Geschichte.
2. Koordinator ist Engpass – es sollte also „mehr Leseoperationen als Schreiboperationen“ geben.
3. Kausalitätstreue und Unabhängigkeitstreue wären gewährleistet, wenn es keine Leseoperationen gäbe (aber dann wäre die Replikation sinnlos!)
![Page 5: Vs6.1.21 6.1.2 Sequentielle Konsistenz (Lamport 1979) Def.: Sequentielle Konsistenz (sequential consistency): Effekt/Ergebnisse einer verteilten Programmausführung](https://reader036.vdocuments.mx/reader036/viewer/2022062521/570491be1a28ab14218d8148/html5/thumbnails/5.jpg)
vs6.1.2 5
client prim
inc
sec
x
sec
Verletzung der Kausalitätstreue
client
y
x
x x
yy
read
yy
![Page 6: Vs6.1.21 6.1.2 Sequentielle Konsistenz (Lamport 1979) Def.: Sequentielle Konsistenz (sequential consistency): Effekt/Ergebnisse einer verteilten Programmausführung](https://reader036.vdocuments.mx/reader036/viewer/2022062521/570491be1a28ab14218d8148/html5/thumbnails/6.jpg)
vs6.1.2 6
Modifiziertes Verfahren (Tanenbaum 1995):
Durchnumerierung der Versionen des Objekts mit Rundrufzähler des Koordinators
Jede Station merkt sich die höchste Versionsnummer, von der sie Kenntnis hat, als lokal aktuelle Versionsnummer a
Aktuelle Versionsnummer wird mit jeder Nachricht, die nicht an den Koordinator geht, als Nummer v mitgeschickt
Ein Server (außer dem Koordinator), der von einem Klienten eine Nachricht (= Lesewunsch) mit v > a erhält, bearbeitet die Nachricht erst dann, wenn er vom Koordinator eine Nachricht mit der Nummer v erhalten und bearbeitet hat
Bemerkung: Versionsnummer = Logische Uhr des Objekts
![Page 7: Vs6.1.21 6.1.2 Sequentielle Konsistenz (Lamport 1979) Def.: Sequentielle Konsistenz (sequential consistency): Effekt/Ergebnisse einer verteilten Programmausführung](https://reader036.vdocuments.mx/reader036/viewer/2022062521/570491be1a28ab14218d8148/html5/thumbnails/7.jpg)
vs6.1.2 7
client prim
inc
sec
x
sec
Versionierung
client
y
y
x x
yy
read
yy
v5 v5 v5 v5 v5
v6v6v6
v6
v6 v6
v6 v6
v6
v6
![Page 8: Vs6.1.21 6.1.2 Sequentielle Konsistenz (Lamport 1979) Def.: Sequentielle Konsistenz (sequential consistency): Effekt/Ergebnisse einer verteilten Programmausführung](https://reader036.vdocuments.mx/reader036/viewer/2022062521/570491be1a28ab14218d8148/html5/thumbnails/8.jpg)
vs6.1.2 8
Eigenschaften:
Sequentielle Konsistenz gewährleistet bei Abwesenheit asynchroner Operationen
Achtung: Etwaige Kommunikation unter den Klienten ist nicht kausalitätstreu - sofern nicht durch zusätzliche Maßnahmen gewährleistet (5.2.2)
![Page 9: Vs6.1.21 6.1.2 Sequentielle Konsistenz (Lamport 1979) Def.: Sequentielle Konsistenz (sequential consistency): Effekt/Ergebnisse einer verteilten Programmausführung](https://reader036.vdocuments.mx/reader036/viewer/2022062521/570491be1a28ab14218d8148/html5/thumbnails/9.jpg)
vs6.1.2 9
client prim
set(y)
sec
x
sec
Konsistenzverletzung durch asynchrone Operation
client
x x
yget()
y
v5 v5 v5 v5
v6v5
v6
v6
x
![Page 10: Vs6.1.21 6.1.2 Sequentielle Konsistenz (Lamport 1979) Def.: Sequentielle Konsistenz (sequential consistency): Effekt/Ergebnisse einer verteilten Programmausführung](https://reader036.vdocuments.mx/reader036/viewer/2022062521/570491be1a28ab14218d8148/html5/thumbnails/10.jpg)
vs6.1.2 10
6.1.3 Kausale Konsistenz(Hutto, Ahamad, 1990)
Def.: Kausale Konsistenz (causal consistency):
Die Effekte kausal abhängiger Schreiboperationenwerden von allen Beteiligten in der gleichen Reihenfolgebeobachtet (nämlich in der Kausalfolge)
Implementierung:
- kausal geordnete Rundrufe (5.2.2)
- keine Primärkopie erforderlich
![Page 11: Vs6.1.21 6.1.2 Sequentielle Konsistenz (Lamport 1979) Def.: Sequentielle Konsistenz (sequential consistency): Effekt/Ergebnisse einer verteilten Programmausführung](https://reader036.vdocuments.mx/reader036/viewer/2022062521/570491be1a28ab14218d8148/html5/thumbnails/11.jpg)
vs6.1.2 11
A rep.Obj.
w(x)
CB
kausale Konsistenz verletzt:
D
r()x
r()y
r()x
r()x
r()y
A rep.Obj.
w(x)
CB
kausal konsistent(!):
D
w(y)
r()x
r()y
r()y
r()x
w(y)
(Schreiboperationen kausal unabhängig)
![Page 12: Vs6.1.21 6.1.2 Sequentielle Konsistenz (Lamport 1979) Def.: Sequentielle Konsistenz (sequential consistency): Effekt/Ergebnisse einer verteilten Programmausführung](https://reader036.vdocuments.mx/reader036/viewer/2022062521/570491be1a28ab14218d8148/html5/thumbnails/12.jpg)
vs6.1.2 12
Anwendung:- wenn keine nebenläufigen Operationen auf Objekt
- oder wenn nebenläufige Operationen kommutieren
Def.: Zwei Operationen op1, op2 eines ADT kommutieren,
op1 | op2 , wenn jede nebenläufige Ausführungder Operationen zu den gleichen Ergebnissen
undzum gleichen (abstrakten!) Gesamteffekt führt.(Entsprechend für mehr als zwei Operationen.)
Beobachtung: Kommutierende Operationen können auf verschiedenen Replikaten in verschiedenerReihenfolge ausgeführt werden!
![Page 13: Vs6.1.21 6.1.2 Sequentielle Konsistenz (Lamport 1979) Def.: Sequentielle Konsistenz (sequential consistency): Effekt/Ergebnisse einer verteilten Programmausführung](https://reader036.vdocuments.mx/reader036/viewer/2022062521/570491be1a28ab14218d8148/html5/thumbnails/13.jpg)
vs6.1.2 13
Abgeschwächte kausale Konsistenz:
Def.: PRAM-Konsistenz (pipelined RAM consistency):
Die Effekte der Schreiboperationen eines Prozesseswerden von allen Beteiligten in der Ausführungsreihenfolgebeobachtet (d.h. Kausalität nicht prozessübergreifend)
Implementierung: FIFO-Rundrufe (5.2.1)(mittels einfacher Nachrichtennumerierung)
Anwendung: z.B. Protokollieren von wichtigen Ereignisseninnerhalb der Prozesse
![Page 14: Vs6.1.21 6.1.2 Sequentielle Konsistenz (Lamport 1979) Def.: Sequentielle Konsistenz (sequential consistency): Effekt/Ergebnisse einer verteilten Programmausführung](https://reader036.vdocuments.mx/reader036/viewer/2022062521/570491be1a28ab14218d8148/html5/thumbnails/14.jpg)
vs6.1.2 14
A rep.Obj.
w(x)
CB
PRAM-konsistent:
D
r()x
r()x
r()y
r()y
r()x
w(y)
w(z)
r()z
r()z
![Page 15: Vs6.1.21 6.1.2 Sequentielle Konsistenz (Lamport 1979) Def.: Sequentielle Konsistenz (sequential consistency): Effekt/Ergebnisse einer verteilten Programmausführung](https://reader036.vdocuments.mx/reader036/viewer/2022062521/570491be1a28ab14218d8148/html5/thumbnails/15.jpg)
vs6.1.2 15
6.1.4 Schwache Konsistenz
Beobachtungen:
1. Aktualisieren einer Kopie muss erst dann abgeschlossen sein,wenn sie tatsächlich gelesen wird.
2. Wenn eine Kopie ohne Lesen nacheinander mehrfach überschrieben wird, (ohne Berücksichtigung des aktuellen Werts, z.B. bei passiverReplikation), braucht nur der letzte Schreibvorgang vor dem Lesen ausgeführt zu werden.
3. Solche Situationen sind typisch für die Manipulation von Objektenunter Sperrsynchronisation – die wegen der Nichtsequentialität ohnehin an vielen Stellen erforderlich ist.
![Page 16: Vs6.1.21 6.1.2 Sequentielle Konsistenz (Lamport 1979) Def.: Sequentielle Konsistenz (sequential consistency): Effekt/Ergebnisse einer verteilten Programmausführung](https://reader036.vdocuments.mx/reader036/viewer/2022062521/570491be1a28ab14218d8148/html5/thumbnails/16.jpg)
vs6.1.2 16
Def.: Schwache Konsistenz (weak consistency):
1. Synchronisationsobjekte sind sequentiell konsistent.
2. Bei Zugriff eines Prozesses auf ein Synchronisations- objekt wird sichergestellt, dass
a) alle vorangegangenen Schreiboperationen des Prozesses auf allen Replikaten abgeschlossen sind
b) alle Schreiboperationen anderer Prozesse auf den lokalen Replikaten abgeschlossen sind
M.a.W.: Synchronisationsoperation erzwingt „temporäre Konsistenz“
![Page 17: Vs6.1.21 6.1.2 Sequentielle Konsistenz (Lamport 1979) Def.: Sequentielle Konsistenz (sequential consistency): Effekt/Ergebnisse einer verteilten Programmausführung](https://reader036.vdocuments.mx/reader036/viewer/2022062521/570491be1a28ab14218d8148/html5/thumbnails/17.jpg)
vs6.1.2 17
A rep.Obj. CB
schwach konsistent:
D
r()y
r()x
w(x)
w(y)
r()y
sync
sync
![Page 18: Vs6.1.21 6.1.2 Sequentielle Konsistenz (Lamport 1979) Def.: Sequentielle Konsistenz (sequential consistency): Effekt/Ergebnisse einer verteilten Programmausführung](https://reader036.vdocuments.mx/reader036/viewer/2022062521/570491be1a28ab14218d8148/html5/thumbnails/18.jpg)
vs6.1.2 18
Nachteil:
System weiß beim sync-Aufruf nicht, ob Prozess am Beginn oder am Ende einer Folge von Schreiboperationen.
Effizientere Implementierung möglich, wenn zwei getrennte Operationen für Betreten und Verlassen eines kritischen Abschnitts verwendet werden.
Daher:
![Page 19: Vs6.1.21 6.1.2 Sequentielle Konsistenz (Lamport 1979) Def.: Sequentielle Konsistenz (sequential consistency): Effekt/Ergebnisse einer verteilten Programmausführung](https://reader036.vdocuments.mx/reader036/viewer/2022062521/570491be1a28ab14218d8148/html5/thumbnails/19.jpg)
vs6.1.2 19
Def.: (eager) Release Consistency
bei wechselseitigem Ausschluss mit Sperroperationenrequest(lock)/release(lock) :
1. Im kritischen Abschnitt wird nur auf die lokalen Replikate der manipulierten Objekte zugegriffen.
2. Beim release werden die aktuellen Werte propagiert (passive Replikation), und es wird auf die Bestätigungen von allen Replikaten gewartet.
![Page 20: Vs6.1.21 6.1.2 Sequentielle Konsistenz (Lamport 1979) Def.: Sequentielle Konsistenz (sequential consistency): Effekt/Ergebnisse einer verteilten Programmausführung](https://reader036.vdocuments.mx/reader036/viewer/2022062521/570491be1a28ab14218d8148/html5/thumbnails/20.jpg)
vs6.1.2 20
Def.: Lazy Release Consistency:
Schritt 2 unterbleibt.Stattdessen beschafft sich jeder Prozess bei einem request(lock) die aktuellen Daten vom Prozess mit demletzten release(lock) (entbehrlich falls gleicher Prozess)
Effekt von Release Consistency:
Sequentielle Konsistenz der unter Sperrsynchronisation manipulierten Objekte
(Weitere schwache Konsistenzmodelle siehe Tanenbaum/van Steen 2002)
![Page 21: Vs6.1.21 6.1.2 Sequentielle Konsistenz (Lamport 1979) Def.: Sequentielle Konsistenz (sequential consistency): Effekt/Ergebnisse einer verteilten Programmausführung](https://reader036.vdocuments.mx/reader036/viewer/2022062521/570491be1a28ab14218d8148/html5/thumbnails/21.jpg)
vs6.1.2 21
A rep.Obj. CB
„freigabe-konsistent“:
D
acq(L)
r()x
r()y
w(x)
w(y)
acq(L)
rel(L)
rel(L)