Der Chandy/Lamport-Algorithmus (2) Der Chandy/Lamport-Algorithmus (erster Schnappschussalgorithmus, 1985 veröffentlicht in ACM TOCS 3, 63-75)

Ähnliche Dokumente
Prof. Dr. Th. Letschert CS5001. Verteilte Systeme. Master of Science (Informatik) - Formalisierungen, Logische Zeit - Th Letschert FH Gießen-Friedberg

Verteilte Systeme SS Universität Siegen Tel.: 0271/ , Büro: H-B Stand: 7.

Unabhängigkeit KAPITEL 4

Uhrensynchronisation. Dipl.-Inf. J. Richling Wintersemester 2003/2004

Vorlesung "Verteilte Systeme" Sommersemester Verteilte Systeme NTP) Verteilte Systeme, Sommersemester 1999 Folie 4.2

Mathematik für Informatiker 1 Tutorium

Konvergenz, Filter und der Satz von Tychonoff

Vorkurs Mathematik und Informatik Mengen, natürliche Zahlen, Induktion

DIE SPRACHE DER WAHRSCHEINLICHKEITEN

Informatik II Grundbegriffe der Wahrscheinlichkeitsrechnung

(x, x + y 2, x y 2 + z 3. = e x sin y. sin y. Nach dem Umkehrsatz besitzt f dann genau auf der Menge

Lineare Abhängigkeit

2. Lernen von Entscheidungsbäumen

Zahlen und metrische Räume

2.2 Ereignisse und deren Wahrscheinlichkeit

Zahlen und metrische Räume

Kapitel VI. Euklidische Geometrie

Technische Universität München Zentrum Mathematik. Übungsblatt 7

- Anzahl notwendiger Kontrollrunden? Unbeschränkt! - Wiederholte Ausführung des zugrundeliegenden Wellenalgorithmus: E S für "alle" Runden...

1 Axiomatische Charakterisierung der reellen. 3 Die natürlichen, die ganzen und die rationalen. 4 Das Vollständigkeitsaxiom und irrationale

Maße auf Produkträumen

Grundlagen verteilter Systeme

Übungen zur Wahrscheinlichkeitstheorie und Statistik

Mengen. Eigenschaften. Spezielle Mengen (1) Prominente Mengen. ! Mengenzugehörigkeit

Softwareentwicklung in verteilten Umgebungen, Teil 8 Time and Global States (Coulouris et al., Kapitel 11) Dieter Schmalstieg

Kapitel 1. Grundlagen

Grundlagen verteilter Systeme

Kapitel 2: Mathematische Grundlagen

Eigenwerte und Diagonalisierung

Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung

2 Die Dimension eines Vektorraums

Am Dienstag, den 16. Dezember, ist Eulenfest. 1/48

4. ggt und kgv. Chr.Nelius: Zahlentheorie (SS 2007) 9

Im gesamten Kapitel sei Ω eine nichtleere Menge. Wir bezeichnen die Potenzmenge

Definition Sei V ein Vektorraum, und seien v 1,..., v n V. Dann heißt eine Linearkombination. n λ i = 1. mit. v = v i λ i.

Satz 16 (Multiplikationssatz)

Vorlesung "Verteilte Systeme" Sommersemester Verteilte Systeme. Adreßraum. Rechner. Verteilte Systeme, Sommersemester 1999 Folie 19.

Kurs über Lineare Gleichungssysteme. PD Dr. Karin Halupczok

mathematische Grundlagen der Modelltheorie: Mengen, Relationen, Funktionen

Kapitel 1. Grundlagen Mengen

Wir starten mit der Entwicklung einer algebraischen Struktur, welche u.a. gut zur Kennzeichnung von Geometrien geeignet ist.

Vorkurs Mathematik Abbildungen

Vorschriften und Probleme... Das Problem der Wüstenposten. - Reisende dürfen die Wüste nur "kontrolliert" (bei einem "wachen" Posten) betreten

ADS: Algorithmen und Datenstrukturen 2

(Allgemeine) Vektorräume (Teschl/Teschl 9)

Satz 18 (Satz von der totalen Wahrscheinlichkeit)

9: Verteilte Algorithmen

Diskrete Strukturen Kapitel 2: Grundlagen (Relationen)

37 Gauß-Algorithmus und lineare Gleichungssysteme

Transaktionen. Michael Löwe 04/15/16. FHDW Hannover, Freundallee 15, Hannover address:

4 Greedy-Algorithmen (gierige Algorithmen)

Donnerstag, 11. Dezember 03 Satz 2.2 Der Name Unterraum ist gerechtfertigt, denn jeder Unterraum U von V ist bzgl.

Kausalität und kontrafaktische

Affine Geometrie (Einfachere, konstruktive Version)

Mengenlehre. ALGEBRA Kapitel 1 MNProfil - Mittelstufe KZN. Ronald Balestra CH Zürich Name: Vorname:

Diskrete Strukturen Kapitel 2: Grundlagen (Beweise)

ANALYSIS I FÜR TPH WS 2016/17 1. Übung Übersicht

Prof. Dr. Rudolf Scharlau, Stefan Höppner

Komplexität von Algorithmen

Euklidische und unitäre Vektorräume

Vorlesung. Einführung in die mathematische Sprache und naive Mengenlehre

7.2 Conjoining Specifications

Anhang B. Relationenalgebraische Definitionen. B.1 Relationen

Visualisierung paralleler bzw. verteilter Programme

Statistische Tests. Kapitel Grundbegriffe. Wir betrachten wieder ein parametrisches Modell {P θ : θ Θ} und eine zugehörige Zufallsstichprobe

8 Tangenten an Quadriken

Vektorgeometrie - Teil 1

Inhaltsverzeichnis. 4.1 Systemmodell und notwendige Bedingungen. 4.2 Gegenmaßnahmen

1. Gruppen. 1. Gruppen 7

Message Sequence Charts, Live Sequence Charts

3.6 Eigenwerte und Eigenvektoren

WS 2009/10. Diskrete Strukturen

Zusammenfassung Mathe III. Themenschwerpunkt 3: Analytische Geometrie / lineare Algebra (ean) 1. Rechenregeln mit Vektoren

Kapitel 3. Minkowski-Raum. 3.1 Raumzeitlicher Abstand

Vollständigkeit; Überabzählbarkeit und dichte Mengen) Als typisches Beispiel für die reellen Zahlen dient die kontinuierlich ablaufende Zeit.

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Zufallsprozesse, Ereignisse und Wahrscheinlichkeiten die Grundlagen

Motivation. Motivation

I. Aussagenlogik. Aussagenlogik untersucht Verknüpfungen wie "und", "oder", "nicht", "wenn... dann" zwischen atomaren und komplexen Sätzen.

4. Lernen von Entscheidungsbäumen. Klassifikation mit Entscheidungsbäumen. Entscheidungsbaum

Geordnete Mengen. Eine Relation heißt Ordnung oder Ordnungsrelation, wenn sie reflexiv, transitiv und antisymmetrisch ist.

Durchschnitt von Matroiden

Definition 7.1. Der Coxeter Graph zu W ist der ungerichtete gewichtete Graph Γ W = (V, E), mit Eckenmenge V und Kantenmenge E, gegeben durch V = und

Grundlagen der Mengenlehre

Mengen und Abbildungen

Push bzw. Publish & Subscribe. Broker als Informationsvermittler

Grundlagen verteilter Systeme

Mathematik II für Studierende der Informatik. Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2016

2. Optimierungsprobleme 6

Vorlesung Datenstrukturen

24 KAPITEL 2. REELLE UND KOMPLEXE ZAHLEN

1.4 Äquivalenzrelationen

Einführung in die Informatik 2

1 Euklidische und unitäre Vektorräume

Übung zur Vorlesung Multiagentensysteme

Verteilte Systeme - 3. Übung

Topologische Aspekte: Eine kurze Zusammenfassung

Probabilistische Primzahltests

Kostenmodell. Daniel Graf, Tobias Pröger. 22. September 2016 (aktualisierte Fassung 5 vom 9. Oktober 2016)

Kapitel 1.5. Ein adäquater Kalkül der Aussagenlogik. Teil 1: Kalküle und Beweisbarkeit und die Korrektheit des Shoenfield-Kalküls

Transkript:

Der Chandy/Lamport-Algorithmus (erster Schnappschussalgorithmus, 985 veröffentlicht in ACM TOCS, 6-75) - Idee: ) Setzt FIFO-Kanäle voraus ("flushing-prinzip") Marker schieben In-transit-Nachrichten aus den Kanälen heraus ) Flooding als zugrundeliegendes Wellenverfahren - Nachricht aus der Zukunft ==> Schnitt ist konsistent - vgl auch frühere Ausführungen zu "virtuell gleichzeitiges Markieren" Der Chandy/Lamport-Algorithmus () - Globaler Zustand besteht aus den Prozesszuständen und allen Kanalzuständen - Im Unterschied zum nicht-fifo-fall sind Kanalzustände Folgen von Nachrichten, keine Mengen Channel State = sequence of messages sent along the channel before the sender s state is recorded, ecluding the sequence of messages received along the channel before the receiver s state is recorded B A schwarz rot y FIFO! - bei wird ein Marker von A nach B gesendet (falls A und B benachbart sind) - Nachricht kann den Marker nicht überholen ==> nach gesendete Nachricht kommt nach y an Marker-Sending Rule for a Process p For each channel c, incident on, and directed away from p: p sends one marker along c after p records its state and before p sends further messages along c - In-transit-Nachrichten bei FIFO-Kanälen: - Nach der letzten schwarzen Nachricht folgt ein Marker - Empfang eines Markers informiert den Empfänger, dass nun über diesen Kanal keine schwarzen Nachrichten mehr ankommen Marker-Receiving Rule for a Process q On receiving a marker along channel c: if q has not recorded its state then q records its state; q records the state of c as the empty sequence else q records the state of c as the sequence of messages received along c after q s state was recorded and before q received the marker along c - Vorteil: Farben müssen nicht (in Nachrichten) mitgeführt werden - Nachteile: - bei dichten Netzen grosse Zahl von Kontrollnachrichten - FIFO ist notwendig - lokale Zustände müssen ia zum Initiator gebracht werden (zb mittels Echo-Nachrichten) Vert Algo /, F Ma 7 - Wie verhält sich ein Initiator? Kann der Algorithmus "spontan" von mehreren Prozessen unabhängig voneinander initiiert werden? - Wieso ist im ersten Fall der Kanalzustand die leere Folge? Hat jeder so gewonnene globale Zustand einige leere Kanäle? Vert Algo /, F Ma 8

Türken einen Tag unter "Hausarrest" gestellt ANKARA (dpa) Mehr als 5 Millionen Einwohner der Türkei standen gestern unter "Hausarrest" Weil die Wählerlisten für ein am 6 September anstehendes Referendum überprüft werden sollten, durfte die Bevölkerung den ganzen Tag die Wohnungen nicht verlassen In der Volksbefragung soll über Fortdauer oder Aufhebung des seit 98 bestehenden politischen Betätigungs-Verbots für die früheren Ministerpräsidenten Ecevit und Demirel entschieden werden Während landesweit zehntausende von Helfern unterwegs waren, um in dem wie ausgestorben wirkenden Land die Eintragungen in die Wählerlisten in den Wohnungen der Wähler zu kontrollieren, attackierten die beiden Oppositionspolitiker die umständliche Methode der Zählung Eigenschaften verteilter Berechnungen mit Schnappschüssen "entdecken"? - Ein wiederholt angewendeter Schnappschussalgorithmus könnte zuerst s, dann s liefern (s ist "später" als s) - dazwischen sind Lücken! s s s Menge der konsistenten Zustände der Berechnung, geordnet entsprechend der "später-relation" (entspricht der Präfibeziehung) Eigenschaft sei in diesen Bereichen gültig (wird jedoch von s oder s nicht "entdeckt", allenfalls von s) Anfangszustand wenn dies in einem Zustand gilt, dann auch in allen späteren - Sinnvoll, wenn die Eigenschaft stabil ist - aber ansonsten? - beachte: wir wissen nicht, ob "in Wirklichkeit" s oder s eintrat! - Wir hätten gerne eine lückenlose "Folge" konsistenter Schnappschüsse als eine "Beobachtung" der Berechnung Vert Algo /, F Ma 9 - Allerdings sind Berechnungen nur halbgeordnete Mengen (konsistenter) Zustände (also keine Folgen)! Vert Algo /, F Ma

Beobachten verteilter Berechnungen wie früher schon erwähnt: Kontrollnachricht 9 6 Verteilte Berechnung und Beobachtung Der ideale globale Beobachter Beobachter Beobachten geht nur über das Empfangen von "Kontrollnachrichten" (mit unbestimmter Laufzeit) Eine verteilte Berechnung "Aiom": Mehrere Prozesse können "niemals" gleichzeitig beobachtet werden "Korollar": Aussagen über den globalen Zustand sind schwierig Vert Algo /, F Ma Vert Algo /, F Ma

Beobachtungen Das Paradigma der Beobachtung Beobachter Sind die beiden Beobachtungen äquivalent?? - Korrektes Beobachten verteilter Systeme ist ein wichtiges praktisches Problem - Kausaltreue (auch: "kausal konsistente") Beobachtungen stellen das Kernproblem vieler verteilter Algorithmen dar Das Bild Beobachter ==> Wie realisiert man kausaltreue Beobachter? ==> Was sind, formal gesehen, kausaltreue Beobachter / Beobachtungen? Beobachtungsnachrichten Probleme: Zeitverzögerung der Beobachtung Konsistenz des Bildes Verzerrung des Verhaltens ("Heisenberg sche Unschärfe") Vert Algo /, F Ma Vert Algo /, F Ma

Prozess Prozess Ideale Beobachtungen e e e e Nachricht e e e e e e e e globale Zeit sofortige Benachrichtigung Beobachter Prozess Prozess Kausaltreue Beobachtungen - Ursachen werden stets vor ihren Wirkungen angezeigt - dies hoffen wir zu bekommen! (aber wie?) beobachteter globaler Zustand e e e e e e - Beobachtet werden Ereignisse bei den Prozessen - Meldung nach aussen über Beobachtungsnachrichten - Eine solche ideale Beobachtung möchten wir haben, können das aber nicht garantiert bekommen - Statt dessen könnten wir etwas bekommen, was wir nicht haben wollen wesentliche Vorkommnisse, zb Nachricht empfangen / senden (nämlich eine inkonsistente Beobachtung, bei der sich Beobachtungsnachrichten so überholen, dass Ursache und Wirkung vertauscht werden) Prozess Prozess Beobachtungsnachrichten Sicht des Beobachters (Keine Nachricht geht rückwärts!) e e e e e e vertikale Projektion e e e e e e globaler Zustand als vertikale Linie - Beobachtersicht ist nur in irrelevanter Weise verzerrt (dh ist eine Gummibandtransformation des echten Ablaufes) - Beobachteter globaler Zustand ist daher möglich Vert Algo /, F Ma 5 - gültige, nicht zu widerlegende Interpretation - nicht entscheidbar, ob tatsächlich eingetreten Vert Algo /, F Ma 6

Kausal (in)konsistente Beobachtungen wie früher schon erwähnt: Kausal (in)konsistente Beobachtungen Das Beobachtungsproblem ist nicht neu Druckmesser Pumpe Beobachter (Leitstand) v Pumpe erhöhe Druck e Druckmesser Druckverlust Druck- erhöhung kleines Leck Zeit e v Wenn ein Zuschauer von der Ferne das Eercieren eines Bataillons verfolgt, so sieht er übereinstimmende Bewegungen desselben plötzlich eintreten, ehe er die Commandostimme oder das Hornsignal hört; aber aus seiner Kenntnis der Causalzusammenhänge weiss er, dass die Bewegungen die Wirkung des gehörten Commandos sind, dieses also jenen objectiv vorangehen muss, und er wird sich sofort der Täuschung bewusst, die in der Umkehrung der Zeitfolge in seinen Perceptionen liegt Christoph von Sigwart (8-9) Logik (889) Bataillon Zeit Falsche Schlussfolgerung des Beobachters: Es erhöhte sich der Druck (aufgrund einer unbegründeten Aktivität der Pumpe), es kam zu einem Leck, was durch den abfallenden Druck angezeigt wird Forderung ( kausaltreue Beobachtung ): Ursache stets vor (uu indirekter) Wirkung beobachten! Commandant Zuschauer Commando hören?? sehen Bewegung Frage: Wie implementiert man kausal konsistente Beobachter? Vert Algo /, F Ma 7 Wirkung Ursache Vert Algo /, F Ma 8

Kausal inkonsistente Beobachtungen - Überholungen von Benachrichtigungen: a Wirkung b b b a Ursache a vertikale Projektion Nachricht aus der Zukunft Die ( rekonstruierte ) Sicht des Beobachters - In der Interpretation des Beobachters: - Nachricht fliesst rückwärts in der Zeit - Kausalität ist verletzt (Wirkung vor Ursache!) - Beobachteter globaler Zustand nach b ist inkonsistent Kausaltreue Beobachtungen lineare Erweiterung oder Einbettung Definition: Eine kausaltreue Beobachtung einer Berechnung ist eine Linearisierung der entsprechenden (partiellen) Kausalordnung (E,<) Mit anderen Worten: Jeder Trace von Ereignissen, in dem eine Wirkung niemals vor ihrer Ursache erscheint, heisst kausaltreue Beobachtung Bemerkung: Es gibt ia viele unterschiedliche Linearisierungen! - wieviele? (Grössenordnung in Abhängigkeit der Ereignis- und Prozesszahl?) - eine sequentielle Berechnung besitzt offenbar nur eine einzige Linearisierung - kausal unabhängige Ereignisse können stets in unterschiedlicher Reihenfolge wahrgenommen werden - alle kausaltreuen Beobachtungen sind gleichermassen wahr - alle kausaltreuen Beobachter sind sich bzgl Kausalitätsrelation einig! Schnitt aller Linearisierungen einer Halbordnung = Halbordnung (Theorem von Szpilrajn, 9) - Wir hätten gerne eine kausaltreue Beobachtung, wo die Beobachtersicht nur in irrelevanter Weise verzerrt ist - dh eine Gummibandtransformation des echten Ablaufes ist (bei der keine Nachricht rückwärts verläuft) ==> der "unstrittige Kern" aller Beobachter ist die Kausalrelation der Berechnung selbst! ==> in den "wesentlichen" Aspekten stimmen alle Beobachter überein! (die Kausalbeziehung ist also ein beobachterinvariantes, objektives Faktum) ==> vert Berechnung ist durch die Menge aller ihrer Beobachtungen charakterisiert - wie erzwingt man das? Vert Algo /, F Ma 9 Vert Algo /, F Ma

Relativierung der Gleichzeitigkeit Zwei "kausal unabhängige" Ereigniss können in beliebiger Reihenfolge beobachtet werden! Lichtkegel-Prinzip der relativistischen Physik Das "Entdecken" globaler Prädikate Frage: Gilt in dieser Berechnung Φ ( = y)? Beob a b Raum A Beob unmöglich B b a Zeit A und B geschehen "gleichzeitig" (jedenfalls kausal unabhängig!) P P := y := := y := Beob a b Beob A B a b beobachterinvariant ==> objektive Tatsache B liegt im Kegel von A --> B hängt kausal ab von A --> Alle Beobachter sehen B nach A Vert Algo /, F Ma Vert Algo /, F Ma

:= := Ja! y := y := Beobachter Beobachter Nein! y := := y := := Meldungen alle gleich schnell Beide Beobachtungen sind gleich richtig Die Beobachter stimmen bzgl = y nicht überein! Aber was denn nun: gilt =y in dieser Berechnung oder nicht? Vert Algo /, F Ma Vert Algo /, F Ma

Das "Entdecken" globaler Prädikate Frage: Gilt in dieser Berechnung Φ ( = y)? Possible Worlds - Verschiedene Beobachter sehen verschiedene Wirklichkeiten --> Frage, ob ein bestimmtes Prädikat gilt, ist uu sinnlos! := := Beobachter Ja! y := y := unterschiedliche Abläufe ein verteiltes Programm Nichtdeter- minismus P P := y := := y := mehrere Beobachter eine einzige verteilte Berechnung relativistischer Effekt Beobachter Nein! y := := y := := Meldungen sind alle gleich schnell Beide (kausaltreuen!) Beobachtungen sind gleich richtig Die Beobachter stimmen bzgl = y nicht überein! Aber was denn nun: gilt =y in dieser Berechnung oder nicht? Vert Algo /, F Ma 5 Menge der Beobachter, für die ein Prädikat wahr ist Konsequenz: Es ist naiv (dh falsch!), einen verteilten Debugger zu entwickeln, mit dem man solche (im sequentiellen Fall richtigen ) Fragen beantworten kann! im sequentiellen Fall: Berechnung = Beobachtung im verteilten Fall aber: Berechnung Beobachtung Gültigkeit von Prädikaten ist eine Eigenschaft einer Beobachtung, nicht einer Berechnung! gibt es sinnvolle beobachterinvariante Prädikate? Vert Algo /, F Ma 6

Beobachtung, Bild und Wirklichkeit Wirklichkeit? Beobachtung ("eindimensional") Beobachtung eigentliche Berechnung ("mehrdimensional") eigentliche Berechnung? Beobachtung - Einige Eigenschaften gehen durch die Abbildung verloren - hier: kausale Unabhängigkeit - Essentielle Eigenschaften sollen erhalten bleiben - hier: kausale Abhängigkeit - Lässt sich die eigentliche Berechnung aus allen Beobachtungen rekonstruieren? - ja: Schnitt aller Linearisierungen ist Halbordnung selbst - Sind die verschiedenen Beobachtungen verträglich? - Die beobachtete Wirklichkeit kann weitaus merkwürdiger sein, als eine Beobachtung vermuten lässt! - Lassen sich die verschiedenen Beobachtungen zu einem konsistenten Bild zusammenfügen? Vert Algo /, F Ma 7 Vert Algo /, F Ma 8

Das n-dimensionale Zustandsgitter P P P e e e e e e a 5 6 e e e e e e - Beobachtung = - Lineare Folge von Ereignissen - Folge damit assoziierter globaler Zustände 5 6 konsistenter Zustandsraum e inkonsistenter Zustand (e vor e ) a e Dieser Beobachter sieht kein Prädikat, das nur e e e e P nach e, e (in a) gilt! - Beobachtung = Pfad von links unten nach rechts oben (kausaltreue Beobachtung, wenn dieser sich nur im erlaubten Bereich aufhält) - Ein Beobachter sieht alle Ereignisse, aber nur eine Teilmenge aller möglichen Zustände! --> Beobachter kann Prädikate übersehen! Zustände bilden Verband Endzustände der jeweiligen Präfiberechnungen - Mit einem Schnappschussalgorithmus kann nur eine einzige (ia lückenhafte) von vielen Beobachtungen erlangt werden Vert Algo /, F Ma 9 Fragen zum Beobachtungsbegriff ) Gibt es zu jedem kons Zustand s einer Berechnung (mind) einen Beobachter, der diesen "wahrnimmt"? ) Seien s, s zwei bel (kons) Zustände Gibt es immer eine Beobachtung Obs mit s Obs und s Obs? ) Können zwei konkurrente Zustände s, s (dh weder s<s noch s <s) in der selben Beobachtung auftauchen? (Ordnungsrelation entspr Verband bzw Präfiberechnung) ) Es sei s Obs und s später als s Ist dann s Obs? 5) Sei s Obs Gibt es stets ein s Obs, welches später als s ist? früher als s ist? 6) In einer Beobachtung Obs = s,,s k sei s i Obs und e s i (Zustand aufgefasst als Menge der bis dahin vergangenen Ereignisse) a) Gilt dann e sj für alle sj Obs mit j > i? Interpretation? b) Es sei e < e Gilt dann e si? 7) Sind alle Beobachtungen der selben (endlichen) Berechnung gleich lang? Vert Algo /, F Ma

Der erodierte Zustandshyperwürfel - Hier: zwei Prozesse --> -dimensionaler Würfel P b b a erodierter Bereich c c P P Zeit - "Erosion" der inkonsistenten Zuständen von den Ecken her - keine Nachricht wird empfangen, bevor sie gesendet wurde d - ein Prozess blockiert in einer Empfangsanweisung, bis eine Nachricht verfügbar ist (und das zugehörige send somit ausgeführt wurde) - Nachrichten zur Synchronisation: sorgen dafür, dass kein Prozess sich zu schnell entfernt (zwingen Prozesse in den "Schlauch" von links unten nach rechts oben) d a erodierter Bereich P Der Verband konsistenter Zustände - Zu jeder Präfiberechnung gehört ein konsistenter Zustand - Die "echte" Folge globaler Zustände ist ein Pfad durch den Verband (ist aber unbekannt, wenn keine eakte globale Zeit eistiert) - drei "gleichzeitige" globale Zustände A, B, C - Frage, durch welchen davon die Berechnung verlief, ist sinnlos! - Äquivalenzklasse [A, B, C] (alle Zustände mit sieben Ereignissen) - man weiss nur, dass die Berechnung durch diese Klasse lief A B C Endzustand Anfangszustand - Konsistente Zustände bilden einen Verband - früherer, späterer globaler Zustand; abgeschlossen bzgl sup und inf - visualisiert als eine kompakte Menge (ohne "Löcher") - Unterverband des Verbandes aller globalen Zustände 5 erste Dimension zweite Dimension ---> Vektorzeit Vert Algo /, F Ma Vert Algo /, F Ma

Eine -fach verteilte Berechnung Synchronisationsengpässe - Hier sieht jeder kausaltreue Beobachter "kurzzeitig" y=5, =: y:= y:=5 r s y:= := Handshake- Synchronisation s r :=9 - Der Zustand y=5, = wird also auf alle Fälle angenommen; er ist daher "unvermeidlich" - Verallgemeinerung: "Barrier Synchronisation" (erst wenn alle Prozesse die Barriere erreicht haben, dürfen sie weiterlaufen) [Claude Jard et al, Rennes, Frankreich] - -dimensionales Gebilde (als "kompakte Menge") - Synchronisation --> "Kante" oder "Kerbe" auf der Oberfläche - Engpässe werden so sichtbar! Kann man auch noch Berechnungen mit mehr Prozessen so visualisieren? y= s r y=5 y= = s r =9 Durch die beiden markierten Zustände muss jeder Beobachter; dort gilt jedoch =, y=5 ==> Mass für die Parallelität bzw Unabhängigkeit? (ein gutes numerisches Mass für "Parallelität" zu finden ist schwierig!) Vert Algo /, F Ma Vert Algo /, F Ma

Erodierter Hyperwürfel Zeitdiagramm Hyperebene Dualismus der Diagramme globaler Zustand Ereignis Punkt --> globaler Zustand Schnitt(ebene) --> Ereignis Pfad --> Kette von Zuständen Punkt --> Ereignis Schnitt --> globaler Zustand Pfad --> Kette von Ereignissen Ereignis Beide Diagramme repräsentieren die gleiche Berechnung globaler Zustand Konsequenzen - Prädikate gelten ia nur relativ zu Beobachtern, nicht für eine Berechnung als solche! - Debugging: Nächster Schritt / Zustand nicht eindeutig - Debugging: stop when <condition> ia sinnlos - Polynomielle Zahl von Zuständen --> - Eponentielle Zahl von Beobachtungen - Ein einzelner Beobachter kann einen Zustand, in dem ein Prädikat gilt, "verpassen" Genauere Spezifikation von Gültigkeit notwendig, zb: - Prädikat Φ ist aus Sicht von Beobachter X erfüllt ia ziemlich hoffnungslos! - Prädikat Φ wird von wenigstens einem Beobachter wahrgenommen - Prädikat Φ wird von allen Beobachtern wahrgenommen Vert Algo /, F Ma 5 Vert Algo /, F Ma 6

Stabile Prädikate - Informell: Monoton - "einmal wahr, immer wahr" - Def: wenn c < c, dann Φ(c) ==> Φ(c) Halbordnung im Zustandsverband Logische Zeit in verteilten Systemen Prozess φ Prädikat gilt hier und in der Zukunft ( oberer rechter Unterwürfel ) Prozess - Sind beobachterunabhängig (possibly Φ = definitely Φ)! - jeder Beobachter muss durch den oberen rechten Würfel (Fairness) - lassen sich daher einfach mit einer einzigen Beobachtung feststellen (jede andere Beobachtung wird Φ früher oder später ebenfalls entdecken) - Für zwei Beobachtungen B, B gilt: Falls B Φ "entdeckt", dann gibt es einen gemeinsamen späteren Zustand (Verbandseigenschaft!) von B, B, bei dem Φ gilt - spätestens der Endzustand (bei endlichen Berechnungen) -B kann zb die "echte" Ereignisfolge in Realzeit sein, B eine Beobachtung - Ein gelegentlicher (konsistenter) Schnappschuss genügt! - wenn der Schnappschussalgorithmus die Gültigkeit von Φ ermittelt, dann gilt Φ "jetzt" tatsächlich - wenn Φ "jetzt" gilt, dann meldet dies ein (jetzt gestarteter) Schnappschussalg - Es gibt wichtige stabile Prädikate, zb Terminierung, Garbage, Deadlock - Aber woher weiss man eigentlich, ob bzw dass ein Prädikat stabil ist? Vert Algo /, F Ma 7 Bild: R G Herrtwich, G Hommel Vert Algo /, F Ma 8

Kausalrelation ("Happened Before", Lamport 978) - Zur Wiederholung: P P P Sendeereignis internes Ereignis Empfangsreignis - interessant: von links nach rechts verlaufende "Kausalitätspfade" (bestehend aus Nachrichtenpfeilen + Teilstücken auf Prozessachsen) - Kausalrelation < auf der Menge E aller Ereignisse: Logische Zeitstempel von Ereignissen - Verteilte Berechnung abstrakt: n Prozesse, halbgeordnete Ereignismenge E, Nachrichten (Sende- / Empfangsereignis) - Zweck: Ereignissen eine Zeit geben ("dazwischen" egal) - Gesucht: Abbildung C: E --> H Clock - Für e E heisst C(e) Zeitstempel von e "Zeitbereich": Halbgeordnete Menge --> "füher", "später" - C(e) bzw e früher als C(e ) bzw e, wenn C(e) < C(e ) - Wie soll H aussehen? - N (lineare Ordnung) - R (bzw REAL-Datentyp) zb: - Potenzmenge von E - N n (dh n-dim Vektoren) Kleinste transitive Relation auf E, mit < y wenn: ) und y auf dem gleichen Prozess stattfinden und vor y kommt, oder ) ist ein Sendeereignis und y ist das korrespondierende Empfangsereignis - Sinnvolle Forderung: Kausalrelation ("Pfad im Diagramm") Uhrenbedingung: e < e ==> C(e) < C(e ) Ordnungshomomorphismus Zeitrelation früher - In einem Zeitdiagramm gilt für je zwei Ereignisse e, e die Relation e<e genau dann, wenn es einen Kausalitätspfad von e nach e gibt Vert Algo /, F Ma 9 Interpretation ("Zeit ist kausaltreu"): Wenn ein Ereignis e ein anderes Ereignis e beeinflussen kann, dann muss e einen kleineren Zeitstempel als e haben Vert Algo /, F Ma

Logische Uhren von Lamport Commun ACM 978: Time, Clocks, and the Ordering of Events in a Distributed System C: (E,<) --> (R,<) Kausalrelation (oder N) e < e ==> C(e) < C(e ) Zuordnung von Zeitstempeln Uhrenbedingung 5 Kausale Unabhängigkeit - Def ["kausal unabhängig"]: a b : (a < b) (a > b) Beachte: ist nicht transitiv! - Behauptung: C(a) = C(b) ==> a b (Gilt eigentlich a a?) Bew: C(a) = C(b) ==> (C(a) < C(b)) (C(a) > C(b)) ==> (a < b) (a > b) ==> a b (Def) Verwende (C() < C(y)) ==> ( < y) aus der Uhrenbedingung! Protokoll zur Implementierung der Uhrenbedingung: - Lokale Uhr (= Zähler) tickt "bei" jedem Ereignis - Sendeereignis: Uhrwert mitsenden (Zeitstempel) - Empfangsereignis: ma(lokale Uhr, Zeitstempel) Behauptung: Protokoll respektiert Uhrenbedingung Beweis: Kausalitätspfade sind monoton zuerst! danach "ticken" 5 Vert Algo /, F Ma - Gilt die Umkehrung der Uhrenbedingung? Nein, C(e) < C(e ) ==> e < e gilt nicht! Es gilt nur: C(e) < C(e ) ==> e < e oder e e Das heisst: vgl Beispiel Aus den Zeitstempeln lässt sich nicht (immer) schliessen, ob zwei Ereignisse kausal voneinander abhängig sind, oder ob sie unabhängig sind! ==> Aber wozu sind solche Zeitstempel dann gut? Vert Algo /, F Ma

Vektorzeit: Motivation Schnitt und Schnittlinie Umkehrung der Uhrenbedingung gilt nicht für Lamport-Zeit - C(e) < C(e ) ==> e < e gilt nicht! - es gilt nur: C(e) < C(e ) ==> e < e oder e e s s Schnittlinie s Zeit := vergangene Zeit := Vergangenheit := Menge vergangener Ereignisse Kausalrelation viele Uhren messen die Zeit, indem sie vergangene Sekunden zählen vgl dies mit der Lamport-Zeit ("lokal vergangen") Vergangenheit V {e s i : e < l s i } s Schnittereignis (zusätzlich zu "Basisereignissen" je ein Ereignis pro Prozess "festlegen") Zeit(e) := {e e e} = Kegel von e Genauer: Zeitstempel eines Ereignisses Kann durch lokal späteste Ereignisse repräsentiert werden (linksabgeschlossen) Hiervon gibt es n Stück (n = Anzahl der Prozesse) - Schnittlinie trennt Zeitdiagramm / Ereignismenge in zwei disjunkte Mengen "Vergangenheit" / "Zukunft" - Bemerkung: e V e < l e ==> e V (linksabgeschlossen bzgl lokaler Kausalrelation)! --> Zeitstempel ist n-dimensionaler Vektor --> Zeit ist Menge n-dimensionaler Vektoren --> Uhr ist ein array C[:n] zum Anzeigen von Zeitvektoren Vert Algo /, F Ma Denkübung: Man vergleiche den Begriff des Schnittes (insbes des konsistenten Schnittes, vgl nächste Seite) mit dem früher erwähnten Begriff der Präfiberechnung! Man beachte auch die Halbordnungsstruktur bzw Verbandsstruktur dieser Begriffe Vert Algo /, F Ma

Def Schnitt: Konsistente Schnitte S E heisst Schnitt von E, falls e S e < l e ==> e S (dh Schnitt wird mit seiner Vergangenheit identifiziert) Def konsistenter Schnitt: S E heisst konsistent, falls e S e < e ==> e S Vektorzeitstempel von Schnitten Zeitstempel τ(s) eines Schnittes S ist ein Vektor aus N n alle Ereignisse, die links von einer Schnittlinie liegen Anzahl der Prozesse Def: Schnitt S später als S :<==> S S Schnitt S Schnittereignis s i Schnittlinie bzw bei "strikt später" Schreibweise auch: S < S P P s s Beh: Jeder konsistente Schnitt ist ein Schnitt Bew: <l < Bem: Schnitt(linie) inkonsistent <==> "Nachricht aus der Zukunft" Bem: Schnitt(linie) konsistent <==> Schnittereignisse paarweise kausal unabhängig Bew als Übung Bem: Schnitt(linie) konsistent <==> lässt sich senkrecht darstellen (Gummibandtransf) Bew bereits bekannt: Diagramm auseinanderschneiden und versetzen Vert Algo /, F Ma 5 P lokal! Def τ(s)[i] := {e E i e < l s i } := S E i (für jede Komponente i mit i n) Interpretation: s τ(s)[i] ist die "Stelle", wo die Prozessachse von P i durch die Schnittlinie geschnitten wird Beachte: man kann zu konsistenten und inkonsistenten Schnitten den zugehörigen Zeitvektor definieren! Vert Algo /, F Ma 6

Kausale Vergangenheit eines Ereignisses Def kausale Vergangenheit (e) eines Ereignisses e: (e) = {e e e} Beh: (e) ist ein konsistenter Schnitt Bew als Übung Der von e erzeugte Schnitt ("Kegel" / "causal history") e Vektorzeitstempel von Ereignissen Kausale Vergangenheit - Bezeichne e den Kegel {e E e e} von e - jeder Kegel ist ein konsistenter Schnitt (da linksabgeschlossen) ("Kegelmantel" könnte also als senkrechte Linie gezeichnet werden!) - Repräsentation durch die n lokal am weitesten rechts liegenden Ereignisse - Dann definiere τ(e) := τ( e) Menge der Ereignisse von P i Also: τ(e)[i] := {e E e e} E i := {e E i e e} - das heisst: Zeitstempel eines Ereignisses = Zeitstempel seines Kegels P P P e Beh: e e <==> e (e) P Beh: e e <==> (e (e )) (e (e)) P5 (Bew klar) Schnittlinie in der Form eines Kegels (vgl "Lichtkegel" der relativistischen Physik): e ist ein konsistenter Schnitt τ(e): Vektorzeitstempel von e Vert Algo /, F Ma 7 Vert Algo /, F Ma 8

τ(e) < τ(e ) Def "Zeitstempelarithmetik - Jeder Prozess numeriert seine Ereignisse lokal durch 5 e τ(e) = 7 6 vergleichbar (komponentenweise ) < definiert als aber 7 5 8 "konkurrent" - Vektor τ(e) repräsentiert gesamte kausale Vergangenheit des Ereignisses e Interpretation von τ(e) <τ(e ): - e liegt in der kausalen Vergangenheit von e - Kegel von e ist im Kegel von e enthalten e e - Veranschaulichung durch einen Kegel {e e e} - Nummer des jeweils lokal letzten kausal vorangehenden Ereignisses steht in der jeweiligen Komponente des Vektors - Interpretation von τ(e) <τ(e ): - e liegt in der kausalen Vergangenheit von e - Kegel von e ist ganz im Kegel von e enthalten e e 8 sup( ) = 7, 8 7 sup = komponentweises Maimum Vert Algo /, F Ma 9 Vert Algo /, F Ma 5

Implementierung der Vektorzeit Propagieren des Zeitwissens (--> Implementation der Vektorzeit) Andere Zeiten, andere Sitten - Idee: Analog zur Lamport-Zeit (hier allerdings stets vektoriell!) - Jeder Prozess besitzt eine Vektoruhr (--> hält Wissen über vergangene Ereignisse) - Nachrichten enthalten die gesamte kausale Vergangenheit des Senders ==> Zeitvektor des Sendeereignisses - Bei Empfang einer Nachricht: - Vereinigung der Kegel - ==> Supremum der Vektoren Wissen über vergangene Ereignisse vereinigen - bei jedem Ereignis: eigene Komponente erhöhen - beim Senden: neuen Vektor mitsenden - beim Empfangen: komponentenweises Maimum der beiden Vektoren e Vereinigung der beiden Kegel e Mitschleppen des Kegels des Sendeereignisses und Vereinigung mit dem Kegel des Empfangsereignisses Kausalrelation - Behauptung: e < e τ(e) < τ(e ) bzgl Zeitvektor --> "induktiv": ein Ereignis hat ein "vollständiges Wissen" über alle seine vergangenen Ereignisse monoton bzgl Zeitvektoren! - Anschauliche Interpretation: - τ(e) τ(e ) es gibt eine Kausalkette von e zu e Vert Algo /, F Ma 5 - Korollar: e e τ(e) τ(e ) Interpretation: Genau die "gleichzeitigen" Ereignisse beeinflussen sich nicht ggs Vert Algo /, F Ma 5

Rechnen mit Ereignismengen Schnittmatri Mengen von Ereignissen (Kegel) Kausalität Mengentheoretische Operationen Zeitvektoren sup, inf, Zeit Algebraische Operationen (--> rechnen ) - Schnittmatri $ eines Schnittes C (mit Schnittereign c i ): $(C) := (τ(c ), τ(c ),,τ(c n )) dh Schnittereignisvektoren c i als Spaltenvektoren c c C dia 5 sup 5 Verbandsstruktur auf E (Ideale) Produduktverband auf N n c n Frage: Kann man an den Schnittmatrizen etwas über die Schnitte erkennen? (zb: ob später, früher; ob konsistent) Ordnungstheoretische Eigenschaften Algebraische Eigenschaften C konsistent dia($) = sup($) Diagonalvektor Zeilenmaimum Vektorzeit und Vektoruhren ermöglichen eine "operationale Manipulation" der Kausalrelation Vert Algo /, F Ma 5 (dh Maimum einer Zeile ist das Diagonalelement) Vert Algo /, F Ma 5

Das sup = dia -Konsistenzkriterium P P P P c [] = = dia[] c 6 6 6 c c [] = 6 > dia[] c c 6 sup[] > dia[] inkonsistent Ein Prozess (P ) verschieden von P weiss (bei c ) etwas über lokale Ereignisse auf P, von denen P selbst noch nichts weiss (dh die nach c geschehen) Implementierung konsistenter Schnappschüsse mit Vektorzeit? Ein erster Ansatz: Alle Prozesse auffordern, ihren lokalen Zustand zu senden und testen, ob konsistent: P P P P Dieses solange wiederholen, bis man einmal Glück hat <==> Es gibt einen Pfad von einem Ereignis auf P nach c zu einem Ereignis vor c <==> [Generalisierung über alle Indizes i j] Der Schnitt ist inkonsistent Vert Algo /, F Ma 55 Vert Algo /, F Ma 56

Realisierung kausaltreuer Beobachter Vektorzeit und Minkowski-Raumzeit P gegenwärtig beobachteter Zustand P P P Identifiziere Schnittereignis mit lokal vorherigem Ereignis Welches Ereignis,, kann als nächstes ohne Verletzung der Kausalität beobachtet werden?? Beobachter Antikegel Q P R Lichtkegel Gegenwart von P (nicht transitiv!) R > P, aber P Q t gegenwärtig beobachteter Zustand - Welche Spalte kann ausgetauscht werden? (,, aber nicht ) - Beobachter merkt sich dia($); es muss Zeitstempel dia($) sein (ausgenommen die Diagonalkomponente) - Strategie: dia($) = sup($) --> stets konsistent halten! - Beobachter benötigt nur den Diagonalvektor, keine Matri, um momentanen Zustand zu identifizieren Raumzeit Halbordnung -dimensionale Kegel bilden Verband (bzgl Schnitt) Lorentz-Transformation lässt Lichtkegel invariant Raumzeitkoordinaten ermöglichen Test, ob potentiell kausal abhängig: Mit u= (, t ), v= (, t ) prüfe c (t -t ) - ( - ) >= Vektorzeit Halbordnung Zeitvektoren bilden Verband (sup) Gummiband-Transformation lässt Kausalrelation invariant Zeitvektoren ermöglichen einfachen Test, ob potentiell kausal abhängig: (prüfe, ob in allen Komponenten kleiner) Prinzip: Verwende Vektorzeit um (indirektes) Wissen über "kausal frühere" Sendeereignisse zu kodieren: "Dieses Ereignis hängt von einem anderen ab, das ich eigentlich erhalten haben müsste; also warte ich das andere erst ab" Vert Algo /, F Ma 57 Vert Algo /, F Ma 58