verteilte snapshots vortrag im rahmen des seminars parallele und verteilte programmierung matthias...
TRANSCRIPT
![Page 1: Verteilte Snapshots Vortrag im Rahmen des Seminars Parallele und verteilte Programmierung Matthias Bedarff](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d6549795902118bb1ef/html5/thumbnails/1.jpg)
Verteilte Snapshots
Vortrag im Rahmen des Seminars
Parallele und verteilte Programmierung
Matthias Bedarff
![Page 2: Verteilte Snapshots Vortrag im Rahmen des Seminars Parallele und verteilte Programmierung Matthias Bedarff](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d6549795902118bb1ef/html5/thumbnails/2.jpg)
2
Agenda
■ Einleitung
■ Grundlagen▪ Globale Zustände in verteilten Systemen▪ Modell eines verteilten Systems
■ Festhalten von globalen Zuständen▪ Chandy-Lamport Algorithmus▪ Eigenschaften festgehaltener Schnappschüsse
■ Zusammenfassung
![Page 3: Verteilte Snapshots Vortrag im Rahmen des Seminars Parallele und verteilte Programmierung Matthias Bedarff](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d6549795902118bb1ef/html5/thumbnails/3.jpg)
3
Agenda
■ Einleitung
■ Grundlagen▪ Globale Zustände in verteilten Systemen▪ Modell eines verteilten Systems
■ Festhalten von globalen Zuständen▪ Chandy-Lamport Algorithmus▪ Eigenschaften festgehaltener Schnappschüsse
■ Zusammenfassung
![Page 4: Verteilte Snapshots Vortrag im Rahmen des Seminars Parallele und verteilte Programmierung Matthias Bedarff](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d6549795902118bb1ef/html5/thumbnails/4.jpg)
4
Einleitung
■ „Computersysteme durchleben eine Revolution“(A. Tanenbaum 2004)▪ bis in die Mitte der 80er-Jahre waren Computer groß und teuer▪ Unternehmen hatten nur wenige Computer▪ Computer arbeiten unabhängig voneinander
■ Fortschritte in der Entwicklung▪ günstigere Mikroprozessoren▪ leistungsfähigere Computernetzwerke
günstige Computer zu Computersystemen zusammenstellen
■ Verteilte Systeme▪ Globaler Zustand: Zustand des gesamten verteilten Systems zu
einem gewissen Zeitpunkt▪ Schnappschuss: festgehaltener globaler Zustand
![Page 5: Verteilte Snapshots Vortrag im Rahmen des Seminars Parallele und verteilte Programmierung Matthias Bedarff](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d6549795902118bb1ef/html5/thumbnails/5.jpg)
5
Agenda
■ Einleitung
■ Grundlagen▪ Globale Zustände in verteilten Systemen▪ Modell eines verteilten Systems
■ Festhalten von globalen Zuständen▪ Chandy-Lamport Algorithmus▪ Eigenschaften festgehaltener Schnappschüsse
■ Zusammenfassung
![Page 6: Verteilte Snapshots Vortrag im Rahmen des Seminars Parallele und verteilte Programmierung Matthias Bedarff](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d6549795902118bb1ef/html5/thumbnails/6.jpg)
6
Globale Zustände in verteilten Systemen (1/2)
■ Gründe für das Erstellen von Schnappschüssen▪ Ermittlung globaler Prädikate
• Deadlock
• Terminierung der Berechnung
▪ Erstellung von Rücksetzpunkten • Wiederaufnahme der Berechnung nach Absturz
▪ Testen von verteilten Anwendungen• Debuggen und Testen während Entwicklung und Wartung
■ Prozesse physikalisch getrennt▪ kein gemeinsamer Speicher▪ keine gemeinsame Uhr▪ Nachrichtenkanäle besitzen abweichende Verzögerungen
perfekt synchronisierter Schnappschuss nicht möglich
![Page 7: Verteilte Snapshots Vortrag im Rahmen des Seminars Parallele und verteilte Programmierung Matthias Bedarff](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d6549795902118bb1ef/html5/thumbnails/7.jpg)
7
Globale Zustände in verteilten Systemen (2/2)
■ Schnappschuss einer Überweisung
Konto 1 Konto 2
Kanal 1leer
Kanal 2leer
500 € 200 €
Konto 1 Konto 2
Kanal 150 €
Kanal 2leer
450 € 200 €
Konto 1 Konto 2
Kanal 1leer
Kanal 2leer
450 € 250 €
Globaler Zustand 1
Globaler Zustand 2
Globaler Zustand 3
Konto 1 Konto 2
Kanal 150 €
Kanal 2leer
500 € 250 €
Festgehaltener Schnappschuss
Þ
Nach dem Fortsetzen der Berechnung mit dem festgehaltenen Zustand:
100 € zuviel im verteilten System
![Page 8: Verteilte Snapshots Vortrag im Rahmen des Seminars Parallele und verteilte Programmierung Matthias Bedarff](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d6549795902118bb1ef/html5/thumbnails/8.jpg)
8
Modell eines verteilten Systems (1/5)
■ Bestandteile eines verteilten Systems▪ Prozesse (Anzahl begrenzt)▪ Nachrichtenkanäle zwischen Prozessen (Anzahl begrenzt)
• gerichtet (Übertragung nur in eine Richtung möglich)
• Nachrichtenpuffer ist unbegrenzt
• Empfangsreihenfolge entspricht Absendereihenfolge (FiFo)
■ Lokale Zustände▪ Prozess
• besitzt einen Anfangszustand
{ Anfangszustand } { alle eingetretenen Ereignisse }
▪ Nachrichtenkanal• zu Beginn einer verteilten Berechnung leer
{ seit Beginn verschickte Nachrichten } \ { bereits empfangene Nachrichten }
![Page 9: Verteilte Snapshots Vortrag im Rahmen des Seminars Parallele und verteilte Programmierung Matthias Bedarff](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d6549795902118bb1ef/html5/thumbnails/9.jpg)
9
Modell eines verteilten Systems (2/5)
■ Ereignis▪ unteilbare Aktivität, die den lokalen Zustand verändert▪ gehört zu einem einzigen Prozess▪ betrifft höchstens einen Kanal (falls ein Kanal betroffen, dann
Versand oder Empfang einer Nachricht)▪ Formal: Ein Ereignis e für einen Prozess p
• s ist der lokale Zustand von p unmittelbar vor dem Eintreten von e
• s' ist der lokale Zustand von p unmittelbar nach dem Eintreten von e
• falls kein Kanal betroffen:◦ c und M sind null
• falls ein Kanal betroffen:◦ c ist der veränderte Kanal◦ M ist die versendete oder empfangene Nachricht
![Page 10: Verteilte Snapshots Vortrag im Rahmen des Seminars Parallele und verteilte Programmierung Matthias Bedarff](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d6549795902118bb1ef/html5/thumbnails/10.jpg)
10
Modell eines verteilten Systems (3/5)
■ Globaler Zustand▪ setzt sich aus lokalen Zuständen aller Prozesse und Nachrichten-
kanäle zusammen
Globalen Anfangszustand:• alle Prozesse befinden sich in ihrem jeweiligen Anfangszustand
• alle Nachrichtenkanäle sind leer
■ Nächster globaler Zustand▪ Funktion next(S, e) beschreibt die Auswirkung des Ereignisses e▪ Voraussetzungen
• verteiltes System befindet sich in dem globalen Zustand S
• Ereignis e kann in S eintreten (d. h. Prozess p befindet sich in s)
![Page 11: Verteilte Snapshots Vortrag im Rahmen des Seminars Parallele und verteilte Programmierung Matthias Bedarff](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d6549795902118bb1ef/html5/thumbnails/11.jpg)
11
Modell eines verteilten Systems (4/5)
■ Kanal c geht aus Prozess p heraus
■ Kanal c geht in Prozess p herein
Prozessp
s
Globaler Zustand S
Prozessp
s'
Globaler Zustand next(S, e)
Ereignis
e... ...M
Kanal c Kanal c
Prozessp
Kanal c
s
Globaler Zustand S
Prozessp
s'
Globaler Zustand next(S, e)
Ereignis
eM... ...
Kanal c
![Page 12: Verteilte Snapshots Vortrag im Rahmen des Seminars Parallele und verteilte Programmierung Matthias Bedarff](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d6549795902118bb1ef/html5/thumbnails/12.jpg)
12
Modell eines verteilten Systems (5/5)
■ Berechnung▪ Abfolge von n Ereignissen aller Prozesse eines verteilten Systems
▪ falls jedes ei in Si eintreten kann
stellt seq die Berechnung eines verteilten Systems dar und es gilt
)0:( nieseq i
) ,(1 iii eSnextS für ni 0
![Page 13: Verteilte Snapshots Vortrag im Rahmen des Seminars Parallele und verteilte Programmierung Matthias Bedarff](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d6549795902118bb1ef/html5/thumbnails/13.jpg)
13
Konsistente Schnappschüsse (1/3)
■ Grund für Inkonsistenz im Überweisungsbeispiel▪ Konto 1 kennt Nachricht nicht▪ Konto 2 hat Nachricht bereits
empfangen, die sich noch im Kanal 1 befindet
Konto 1 Konto 2
Kanal 1leer
Kanal 2leer
500 € 200 €
Konto 1 Konto 2
Kanal 150 €
Kanal 2leer
450 € 200 €
Konto 1 Konto 2
Kanal 1leer
Kanal 2leer
450 € 250 €
Globaler Zustand 1
Globaler Zustand 2
Globaler Zustand 3
![Page 14: Verteilte Snapshots Vortrag im Rahmen des Seminars Parallele und verteilte Programmierung Matthias Bedarff](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d6549795902118bb1ef/html5/thumbnails/14.jpg)
14
Konsistente Schnappschüsse (2/3)
■ Voraussetzungen für Konsistenz▪ für die Prozesse p und q und einen Kanal c zwischen p und q gilt:
1. n = | { verschickte Nachrichten im festgehaltenen lokalen Zustand von p } |
2. n' = | { verschickte Nachrichten im festgehaltenen lokalen Zustand von c } |
3. m = | { empfangene Nachrichten im festgehaltenen lokalen Zustand von q } |
4. m' = | { empfangene Nachrichten im festgehaltenen lokalen Zustand von c } |
(Erfassung erfolgt unmittelbar vor Aufzeichnung)
▪ Hiermit muss gelten:1. n = n'
2. m = m'
3. n' m'
Konsistenter Zustand:• n m „Anzahl der von p gesendeten Nachrichten muss mindestens so
groß sein wie die Anzahl der von q empfangenen Nachrichten“
![Page 15: Verteilte Snapshots Vortrag im Rahmen des Seminars Parallele und verteilte Programmierung Matthias Bedarff](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d6549795902118bb1ef/html5/thumbnails/15.jpg)
15
Konsistente Schnappschüsse (3/3)
■ Schnappschüsse im Prozess-Zeit-Diagramm
▪ sij ist der j-te lokale Zustand des Prozesses pi
▪ {s11, s21, s31} ist ein streng konsistenter Schnappschuss
▪ {s11, s22, s32} ist ein inkonsistenter Schnappschuss
▪ {s12, s23, s33} ist ein konsistenter Schnappschuss
P1
P2
P3
S11 S12
S21 S22 S23
S31 S32 S33
![Page 16: Verteilte Snapshots Vortrag im Rahmen des Seminars Parallele und verteilte Programmierung Matthias Bedarff](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d6549795902118bb1ef/html5/thumbnails/16.jpg)
16
Agenda
■ Einleitung
■ Grundlagen▪ Globale Zustände in verteilten Systemen▪ Modell eines verteilten Systems
■ Festhalten von globalen Zuständen▪ Chandy-Lamport Algorithmus▪ Eigenschaften festgehaltener Schnappschüsse
■ Zusammenfassung
![Page 17: Verteilte Snapshots Vortrag im Rahmen des Seminars Parallele und verteilte Programmierung Matthias Bedarff](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d6549795902118bb1ef/html5/thumbnails/17.jpg)
17
Chandy-Lamport Algorithmus (1/3)
■ Pseudo-Code Darstellung des Algorithmus
![Page 18: Verteilte Snapshots Vortrag im Rahmen des Seminars Parallele und verteilte Programmierung Matthias Bedarff](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d6549795902118bb1ef/html5/thumbnails/18.jpg)
18
Chandy-Lamport Algorithmus (2/3)
■ Terminierung des Algorithmus▪ Voraussetzungen:
1. kein Marker darf endlos in einem eingehenden Kanal verbleiben
2. Aufzeichnung eines lokalen Zustands muss in endlicher Zeit erfolgen
3. Prozessgraph muss zusammenhängend sein (Weg von einem beliebigen Prozess zu jedem anderen existiert)
Marker wird von allen Prozessen über jeden eingehenden Kanal empfangen
■ Verteilung der lokalen Zustände▪ Verschiedene Strategien:
Jeder Prozess sendet seinen lokalen Zustand …• nur in Richtung des initiierenden Prozesses
• über alle ausgehenden Kanäle an alle Prozesse
• an eine Gruppe von Prozessen
![Page 19: Verteilte Snapshots Vortrag im Rahmen des Seminars Parallele und verteilte Programmierung Matthias Bedarff](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d6549795902118bb1ef/html5/thumbnails/19.jpg)
19
Chandy-Lamport Algorithmus (3/3)
■ Aufwand des Algorithmus▪ Betrachtung der Aufzeichnung der lokalen Zustände
• O(e) Nachrichten, wobei e die Anzahl der Nachrichtenkanäle ist
• O(d) Zeit, wobei d der Durchmesser des Prozessgraphs darstellt
▪ Aufwand für Verteilung hängt von gewählter Strategie ab
![Page 20: Verteilte Snapshots Vortrag im Rahmen des Seminars Parallele und verteilte Programmierung Matthias Bedarff](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d6549795902118bb1ef/html5/thumbnails/20.jpg)
20
Eigenschaften festgehaltener Schnappschüsse (1/6)
■ Festgehaltener Schnappschuss globaler Zustand
500 € 175 €
Festgehaltener Schnappschuss S*
Konto 1 Konto 2
Kanal 1
Kanal 2
25
Þ
500 € 200 €
Konto 1 Konto 2
Kanal 1
Kanal 2
450 € 200 €
450 € 175 €
Globaler Zustand S0
Globaler Zustand S1
Globaler Zustand S2
e0
e1
450 € 175 €
475 € 175 €
475 € 175 €
Globaler Zustand S2
Globaler Zustand S3
Globaler Zustand S3
e2
M
50 M
25
50
50
25
M
Konto 1 Konto 2
Kanal 1
Kanal 2
Konto 1 Konto 2
Kanal 1
Kanal 2
Konto 1 Konto 2
Kanal 1
Kanal 2
Konto 1 Konto 2
Kanal 1
Kanal 2
Konto 1 Konto 2
Kanal 1
Kanal 2
50 M
M
25
25 M
50
![Page 21: Verteilte Snapshots Vortrag im Rahmen des Seminars Parallele und verteilte Programmierung Matthias Bedarff](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d6549795902118bb1ef/html5/thumbnails/21.jpg)
21
Eigenschaften festgehaltener Schnappschüsse (2/6)
■ Fragestellung1. Lässt sich der festgehaltene Zustand vom Initiierungszustand des
Algorithmus erreichen?
2. Lässt sich der Zustand bei Terminierung des Algorithmus vom festgehaltenen Zustand erreichen?
■ Formale Definitionen▪ verteilte Berechnung seq = (ei, 0 i)
▪ Si globaler Zustand unmittelbar vor Eintritt von ei, 0 i
▪ S globaler Zustand bei Initiierung des Algorithmus
▪ S globaler Zustand bei Terminierung des Algorithmus
▪ S* festgehaltener Schnappschuss▪ Zu beweisen:
1. S* ist erreichbar von S
2. S ist erreichbar von S*
![Page 22: Verteilte Snapshots Vortrag im Rahmen des Seminars Parallele und verteilte Programmierung Matthias Bedarff](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d6549795902118bb1ef/html5/thumbnails/22.jpg)
22
Eigenschaften festgehaltener Schnappschüsse (3/6)
■ Behauptung▪ verteilte Berechnung seq' = (ei', 0 i) existiert, für die gilt:
1. i, i i : ei' = ei
2. (ei', i ) ist Permutation von (ei, i )
3. i, i i : Si' = Si
4. k, k : S* = Sk'
■ Vorgehensweise▪ Einteilung aller Ereignisse in zwei Gruppen:
1. vor Aufzeichnung stattfindende Ereignisse, falls der lokale Zustand des betroffenen Prozesses nach dem Eintreten aufgezeichnet wurde
2. nach Aufzeichnung stattfindende Ereignisse, falls der lokale Zustand des betroffenen Prozesses vor dem Eintreten aufgezeichnet wurde
ei, i sind vor Aufzeichnung stattfindende Ereignisse
ei, i sind nach Aufzeichnung stattfindende Ereignisse
![Page 23: Verteilte Snapshots Vortrag im Rahmen des Seminars Parallele und verteilte Programmierung Matthias Bedarff](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d6549795902118bb1ef/html5/thumbnails/23.jpg)
23
Eigenschaften festgehaltener Schnappschüsse (4/6)
■ Vorgehensweise (Fortsetzung)▪ nach Aufzeichnung stattfindendes ej-1 kann vor einem
vor Aufzeichnung stattfindendem ej stattfinden mit j Bedingung: ej-1 und ej ereignen sich auf verschiedenen Prozessen
■ Permutation der Ereignisse▪ Ziel: alle vor Aufzeichnung stattfindenden Ereignisse liegen
vor den nach Aufzeichnung stattfindenden Ereignissen
durch Verschieben von e0 gilt S* = S2'
Ist diese Permutation erlaubt? Wird immer S* erreicht?
S
S0 S1 S2 S3
S
e0 e1 e2
S0' S1' S2' S3'e0' e1' e2'
S*
![Page 24: Verteilte Snapshots Vortrag im Rahmen des Seminars Parallele und verteilte Programmierung Matthias Bedarff](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d6549795902118bb1ef/html5/thumbnails/24.jpg)
24
Eigenschaften festgehaltener Schnappschüsse (5/6)
■ Beweis, dass …▪ Permutation erlaubt ist:
• Voraussetzung: ej-1 beeinflusst nicht ej
in ej wird keine in ej-1 verschickte Nachricht empfangen
Prozess des ej müsste zuvor einen Marker von dem Prozess des ej-1
erhalten haben
▪ ein zu S* äquivalenter globaler Zustand erreicht wird:• lokale Zustände der Prozesse
◦ nach Definition muss der lokale Zustand eines Prozesses aus den vor Aufzeichnung stattfindenden Ereignissen bestehen
• lokale Zustände der Nachrichtenkanäle◦ nur bei Prozessen mit mehreren eingehenden Kanälen relevant◦ Aufzeichnung eines Kanals c …
- beginnt nach Empfang eines Markers über den ersten weiteren Kanal- und endet mit Empfang eines Markers über Kanal c selbst
ergibt sich nach dem letzten vor Aufzeichnung stattfindenden Ereignis
![Page 25: Verteilte Snapshots Vortrag im Rahmen des Seminars Parallele und verteilte Programmierung Matthias Bedarff](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d6549795902118bb1ef/html5/thumbnails/25.jpg)
25
Eigenschaften festgehaltener Schnappschüsse (6/6)
■ Gültigkeit globaler Prädikate in Schnappschüssen▪ Betrachtung eines globalen Prädikats y(S)
• y(S) endgültig und endgültig y(S)
Prädikat kann nur auf wahr wechseln
▪ Betrachtung eines Schnappschusses S*
• y(S) y(S*) y(S)
• Begründung, da S* von S und S von S* erreichbar ist
ein in S* gültiges Prädikat ist auch nach Terminierung gültig
![Page 26: Verteilte Snapshots Vortrag im Rahmen des Seminars Parallele und verteilte Programmierung Matthias Bedarff](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d6549795902118bb1ef/html5/thumbnails/26.jpg)
26
Agenda
■ Einleitung
■ Grundlagen▪ Globale Zustände in verteilten Systemen▪ Modell eines verteilten Systems
■ Festhalten von globalen Zuständen▪ Chandy-Lamport Algorithmus▪ Eigenschaften festgehaltener Schnappschüsse
■ Zusammenfassung
![Page 27: Verteilte Snapshots Vortrag im Rahmen des Seminars Parallele und verteilte Programmierung Matthias Bedarff](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d6549795902118bb1ef/html5/thumbnails/27.jpg)
27
Zusammenfassung
■ Bedarf nach Möglichkeit Schnappschüsse zu erstellen▪ Fortschritte in der Entwicklung machten verteilte Systeme möglich▪ Gründe: globale Prädikate, Rücksetzpunkte und Testen
■ Chandy-Lamport Algorithmus▪ konsistenter Schnappschuss▪ Schnappschuss muss keinem realen globalen Zustand entsprechen▪ aber aufgezeichneter Schnappschuss und Zustand bei
Terminierung sind von dem Zustand bei Initiierung erreichbar
globale Prädikate sind auch nach Terminierung gültig
■ Modifikationen und Erweiterungen des Algorithmus▪ bei schwächeren Annahmen an Nachrichtenkanäle▪ parallele Ausführung des Algorithmus▪ wiederholte Ausführung des Algorithmus
![Page 28: Verteilte Snapshots Vortrag im Rahmen des Seminars Parallele und verteilte Programmierung Matthias Bedarff](https://reader036.vdocuments.mx/reader036/viewer/2022062417/55204d6549795902118bb1ef/html5/thumbnails/28.jpg)
Vielen Dank für Ihre
Aufmerksamkeit!
Bestehen noch Fragen?