Verteilte Algorithmen

Ähnliche Dokumente
Verteilte Algorithmen. Zeitsynchronisation (Time Service) Zustandsalgorithmen

Elementare Systemkomponenten:

Grundlagen verteilter Systeme

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

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

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

Verteilte Systeme. Synchronisation I. Prof. Dr. Oliver Haase

Verteilte Systeme - 3. Übung

Grundlagen verteilter Systeme

Verteilte Systeme - Synchronisation

Network Time Protocol NTP

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

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

Uberblick Verteilte Synchronisation Zeit in verteilten Systemen Logische Uhr Synchronisation Aufgabe 6 VS- Ubung (SS15) Verteilte Synchronisation 10 1

Das Network Time Protocol - NTP. Das Network Time Protocol - NTP. Das Network Time Protocol - NTP. Das Network Time Protocol - NTP

S1 Zeit in verteilten Systemen

Uhrensynchronisation & Gruppenkommunikation. Jan-Arne Sobania Seminar Prozesssteuerung und Robotik 10. Dezember 2008

9: Verteilte Algorithmen

Verteilte Systeme Kapitel 7: Synchronisation

Experimentelle Bewertung der Synchronisationsgenauigkeit von IEEE 802.1AS für variierende Temperaturbedingungen

Übung zur Vorlesung Echtzeitsysteme

Synchronisation von physikalischen Uhren

Ebenen der Synchronisierung

Prof. Dr.-Ing. Dagmar Meyer Architekturen verteilter SW-Systeme 5 SYNCHRONISATION

Grundlagen verteilter Systeme

Client-Server mit Socket und API von Berkeley

Musterlösung Klausur SS 2004

Wintersemester 2014/2015. Überblick. Prof. Dr. Peter Mandl Verteilte Systeme

Zeitsynchronisation in drahtlosen Sensornetzen Verfahren und Anwendungen

Verteilte Systeme. Zeit, Synchronisation und globale Zustände

Aufgaben: (dazugehörige Kapitel / Seitenangaben in Kursiv: Kapitel Seite Seitennummern)

NTP Eine Zusammenfassung. ProSeminar: Kommunikationsprotokolle SS 2003

VS2 Slide 1. Verteilte Systeme. Vorlesung 2 vom Dr. Sebastian Iwanowski FH Wedel

Verteilte Systeme Jürgen Nehmer, SS 2003

Prüfungsprotokoll der mündlichen Prüfung Verteilte Systeme 1678 (Bachelor Informatik)

Klausur Verteilte Systeme

Zeitsynchronisierung gemäss IEEE 1588

TCP. Transmission Control Protocol

Zeitsynchronisation Windows Server 2008 R2 PDC Master der FRD mit einer externen Zeitquelle

(Distributed) Denial-of-Service Attack. Simon Moor Felix Rohrer Network & Services HS 12

Untersuchungen zur Genauigkeit von Flow- Erfassungsmechanismen

VS7 Slide 1. Verteilte Systeme. Vorlesung 7 vom Dr. Sebastian Iwanowski FH Wedel

Kap. 8: Globale Zeit /

Vorlesung. Rechnernetze II Teil 13. Sommersemester 2004

Zeitsynchronisation in Sensornetzen

Seminar Moderne Konzepte für weitverteilte Systeme SS 02

Alexander Kiontke Routing Protokolle

OSEK/VDX NM (Network Management)

56. UKW Tagung Weinheim 2011 Zeitsynchronisation mit NTP (Network Time Protocol)

Multiuser Client/Server Systeme

Clustering (hierarchische Algorithmen)

Architektur verteilter Anwendungen

(S)NTP: Referenz und

Einführung. Internet vs. WWW

Entwicklung eines intelligenten FlexRay-Sternkopplers Paul Milbredt, AUDI AG, , TU Darmstadt

Task A Zündung. Task B Einspritzung. Task C Erfassung Pedalwert. J. Schäuffele, Th. Zurawka: Automotive Software Engineering, Vieweg, 2003

Algorithmen für Peer-to-Peer-Netzwerke Sommersemester Vorlesung

Seminar: Konzepte von Betriebssytem- Komponenten

One-Way Delay Determination Techniques

Fragenkatalog zum Kurs 1666 (Datenbanken in Rechnernetzen) Kurstext von SS 96

3 Physikalische Größen

Kommunikation und Kooperative Systeme

Systemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007

Das innovative Funk-Uhrensystem basiert auf einem Zeitsender, welcher das Zeitsignal an die Geräte

Motivation. Motivation

Verteilte Systeme. 5. Synchronisation

Welche der folgenden Aussagen gelten? a) Im allgemeinen gilt: ein Deadlock tritt auf gdw. der Resource-Allocation Graph einen Zykel

Lösung Verteilte Systeme WS 2011/12 Teil 1

Tech Tipp: Datenübertragung zweier OTT netdl via IP (Ethernet)

Seminarvortag zum Thema Virtual Private Network Design im Rahmen des Seminars Network Design an der Universität Paderborn

Inhaltsverzeichnis. Vorwort 13. Kapitel 1 Einleitung 17. Kapitel 2 Architekturen 51. Kapitel 3 Prozesse 91

VS3 Slide 1. Verteilte Systeme. Vorlesung 3 vom Dr. Sebastian Iwanowski FH Wedel

Klausur zu Verteilte Anwendungen SS 2004 (Prof. Dr. J.Schlichter, Dr. W.Wörndl)

Verteilte Algorithmen Kap. 3: Ordnungen und Reihenfolgen

Bericht über Kooperation zwischen JOIN/Fa. Meinberg

Gliederung. Integrated Service Architecture (ISA) RSVP-Überblick Reservation Styles RSVP-Nachrichten. RN II Kap. 5.

Projektseminar Parallele Programmierung

Christoph Fischer Jörg Schneider DFKI Intelligente Netze. Real Time Workload Monitoring for WLAN

Verteilte Systeme - 5. Übung

Inhaltsverzeichnis. Carsten Vogt. Nebenläufige Programmierung. Ein Arbeitsbuch mit UNIX/Linux und Java ISBN:

Klausur zur Vorlesung Verteilte Systeme im SS 2007 Prof. Dr. Odej Kao 24. Juli 2007

Übersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant?

9 Verteilte Verklemmungserkennung

Algorithmen & Datenstrukturen 1. Klausur

DECUS Symposium Bonn File: decus_tim Peter Schuerholt. Casium-Uhr. DECUS Symposium Bonn Peter Schuerholt

Nutzerauthentifizierung mit 802.1X. Torsten Kersting

Synchronisationsverfahren. Synchronisationsverfahren

Verteilte Algorithmen

IP routing und traceroute

Verteilte Systeme. Verteilte Systeme. 9 Verteilte Dateisysteme SS 2015

Netzwerktechnologie 2 Sommersemester 2004

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

Authentication Header: Nur Datenauth. (Exportbeschränkungen) Empfehlung: Nicht mehr umsetzen

Idee des Paket-Filters

Internet Routing. Grundprinzipien Statisches Routing Dynamisches Routing Routingprotokolle Autonome Systeme

Hauptdiplomklausur Informatik März 2002: Internet Protokolle

Intrusion Detection and Prevention

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

Industrielle Bussysteme : EtherNet/IP

Transkript:

Verteilte Algorithmen Zeitsynchronisation (Time Service) Zustandsalgorithmen VIS-1 VertAlg-1 VIS1-VertAlg-1

Gliederung Übersicht verteilte Algorithmen Zeitalgorithmen Zustandsalgorithmen VIS-1 VertAlg-2 VIS1-VertAlg-2

Übersicht über verteilte Algorithmen Charakteristika Verteilter Systeme (vs. zentralisierte) kein globaler Zeitrahmen deshalb nö g: physikalische Zeitsynchronisation logische zeitliche Ordnungen kein globaler Zustand deshalb nö g: Informationsverbreitung (Echo-, Heartbeat-, Phase-Algorithmen) Snapshotting Termination Detection Auswahlalgorithmen (Bully-, Ringalgorithmus) Distributed Garbage Collection Nebenläufigkeit deshalb nö g: (s.a.: Verteilte Transaktionen ) gegenseitiger Ausschluss (wound-wait, wait-die) Transaktionsunterstützung Deadlock-Erkennung VIS-1 VertAlg-3 VIS1-VertAlg-3

Gliederung Übersicht verteilte Algorithmen Zeitalgorithmen Zustandsalgorithmen VIS-1 VertAlg-4 VIS1-VertAlg-4

Was ist eine Sekunde? 1/60 einer Minute, und die ist 1/60 einer Stunde, und die ist 1/24 des mittleren Sonnentages Für Physiker ist der Tag (präziser: die Dauer der Erddrehung) kein gutes Maß, weil sich die Erde nicht gleichmäßig dreht mittlerer Sonnentag wird immer länger zusätzlich periodische (jahreszeitliche) und nicht-periodische Schwankungen 1967 atomphysikalische Definition einer Sekunde: "Die Sekunde ist das 9 192 631 770-fache der Periodendauer der dem Über-gang zwischen den beiden Hyperfeinstrukturniveaus des Grundzustandes von Atomen des Nuklids Cs-133 entsprechenden Strahlung." Auch diese Sekunde entspricht annähernd dem 86 400. Teil des mittleren Sonnentages. Aber mit Hilfe von Atomuhren kann jede Sekunde genau gleich lang realisiert werden VIS-1 VertAlg-5 VIS1-VertAlg-5

Physische Zeit Koordinierte Universalzeit (Coordinated Universal Time) Uhren mit atomischen Oszillatoren (Abweichung 10-13 ) internationale atomische Zeit (International Atomic Time) seit 1967 Standard astronomische Zeit basiert auf Rotation der Erde um ihre Achse und um die Sonne Periode der Rotation wächst ununterbrochen (Reibung, atmosphärische Effekte u.a.) Folge: astronomische und atomische Zeit driften auseinander Coordinated Universal Time (UTC) ist internationaler Standard, basierend auf atomischer Zeit, sog. leap second wird gelegentlich addiert oder subtrahiert VIS-1 VertAlg-6 VIS1-VertAlg-6

Synchronisation physischer Uhren Synchronisation mit koordinierter Universalzeit UTC - Signale werden synchronisiert und von Radiostationen und Satelliten ausgestrahlt Genauigkeit bei Radiostationen: 0,1-10 ms Genauigkeit bei Satelliten: ca. 0,1 ms Computer können mit diesen Signalen synchronisiert werden, aber: Empfänger sind relativ zu Workstations teuer (insb. bei Satellitenempfängern) Genauigkeit von 10 ms unzureichend bei z.b. >> 10 Mio. Anweisungen / Sekunde Kompensation von Zeitabweichungen die Zeit des Time-Servers (UTC) ist möglicherweise: größer (Lösung: die Uhr heraufsetzen) kleiner (Lösung: die Uhr verlangsamen durch Soft- oder Hardware) --- aber: nicht abrupt!! VIS-1 VertAlg-7 VIS1-VertAlg-7

Synchronisation physischer Uhren Uhren auf Quarzkristallbasis Häufig verwendet u.a. in Computern Zeitabweichung ( clock drift ) die Oszillatoren sind Objekt physischer Veränderungen in derselben Uhr ändert sich die Oszillationsfrequenz mit der Temperatur Netzwerk Abweichungsraten ca.. 10-6 (d.h. 1 s pro 1.000.000 s, also etwa pro 11,6 Tage) VIS-1 VertAlg-8 VIS1-VertAlg-8

Motivierendes Beispiel Unix-Programm make unterstützt Programmierer beim Kompilieren make vergleicht Quell- und Objektdateien anhand ihrer Zeitstempel, um nur notwendige Dateien zu kompilieren Beispiel: output.c hat Zeitstempel 2144 output.o hat Zeitstempel 2145 Kompilieren nicht notwendig output.c hat Zeitstempel 2151 output.o hat Zeitstempel 2150 Kompiliere, da output.c geändert Probleme in einem verteilten System ohne globale Zeit VIS-1 VertAlg-9 VIS1-VertAlg-9

Zeitsynchronisation In verteilten Systemen gibt es keine globale Zeit Probleme dabei: Zeit wird oftmals zum Kennzeichnen von Aktionen verwendet drückt z.b. die Kausalität von Ereignissen aus Einige verteilte Algorithmen beruhen auf zeitbehafteten Ereignissen Konsistenz verteilter Daten (Timestamps für die Serialisierung von Transaktionen) Sicherheit (Authentifizierung von Requests) Elimination duplizierter Updates Lösung über spezielle Synchronisationsverfahren physikalische Uhren logische Uhren VIS-1 VertAlg-10 VIS1-VertAlg-10

Synchronisationarten physikalischer Uhren Grundsätzliche Alternativen: externe Synchronisation: Synchronisation auf eine externe Referenzzeit Alle betrachteten Uhren laufen mit Bezug auf eine UTC-Quelle gleich D>0, S(t)-C i (t) <D, mit S(t) als UTC-Quelle interne Synchronisation ( mit / ohne externer Synchronisation ): Abgleich der internen Uhren beteiligter Rechner Alle betrachteten Uhren sind untereinander gleichlaufend D>0, C i (t)-c j (t) <D Probleme in verteilten Systemen: Synchronisation nur über Netzwerkkommunikation endliche Übertragungsgeschwindigkeit variable Übertragungszeiten meist asynchrone Systeme, d.h. D ist unbekannt, ohne obere Schranke für (z.b.) Uhrabweichungen, Übertragungszeiten, Prozessschritte VIS-1 VertAlg-11 VIS1-VertAlg-11

Uhrensynchronisation mittels Time Server Wie spät ist es? m r P m t Zeitangabe Time server,s VIS-1 VertAlg-12 VIS1-VertAlg-12

Synchronisation physischer Uhren Cristian s - Methode für Uhrensynchronisation - Synchronisation mit Time-Server - T syn = t + T trans,, wobei t die Zeit des Servers und T trans die Übertragungszeit von S nach P ist; aber: T trans variiert, denn andere Prozesse konkurrieren mit S und P andere Nachrichten konkurrieren mit m t im Netz und diese Faktoren sind unvorhersehbar und schwer messbar - Grundsätzlich gilt: T trans = min + x, wo min die Übertragungszeit ist, falls kein anderer Prozess ausgeführt wird und keine weiteren Nachrichten im Netz sind. x > 0. - Der Time-Server kann mit einem UTC-Empfänger ausgestattet werden. - Vernachlässigt Probleme von Server-Ausfällen - Erweiterung: Der Time-Service wird von einer Gruppe von Time-Servern realisiert, Client sendet einen Multicast-Request und wird mit der ersten Antwort synchronisiert. - N.b.: Bewusst falsche und böswilligen Zeitangaben werden nicht berücksichtigt. VIS-1 VertAlg-13 VIS1-VertAlg-13

Synchronisation physischer Uhren Der Berkeley-Algorithmus Algorithmus für interne Synchronisation für Gruppe von Berkeley-UNIX-Computern Master-Slaves-Organisation: - Master kontaktiert die Slaves periodisch - Slaves senden ihre lokalen Zeiten zurück - Master schätzt die Zeiten durch Betrachtung der Übertragungszeiten und bildet Durchschnitt. - Zeiten, die von einem Nominalintervall abweichen, werden nicht berücksichtigt (fault-tolerant average). - Master sendet dann einen individuellen Korrekturwert (positiv oder negativ) an jeden einzelnen Slave zurück. Beim Absturz des Masters wird ein bisheriger Slave als neuer Master ausgewählt. Experiment (Gusella und Zatti): - 15 Computer im Bereich von 20-25 ms synchronisiert. - Abweichungsrate der Uhren 2*10-5 - maximale Übertragungszeit mit 10 ms angenommen. VIS-1 VertAlg-14 VIS1-VertAlg-14

Network Time Protocol Network Time Protocol (NTP) definiert Time-Service-Architektur und -Protokoll für verbundene Netzwerke. Standard für Uhren-Synchronisation im Internet Design und Eigenschaften: UTC-Synchronisation mit statistischen Techniken für Datenfilterung, zuverlässiger Dienst, auch bei andauerndem Verlust der Konnektivität, Clients können ausreichend oft re-synchronisieren, skalierbar für große Anzahl von Clients, Schutz gegen zufällige und böswillige Störungen (Authentifizierungstechniken). VIS-1 VertAlg-15 VIS1-VertAlg-15

Network Time Protocol NTP-Service wird von einem Netzwerk von Servern im Internet realisiert: primäre Server werden direkt mit UTC-Sendern synchronisiert, sekundäre Server werden mit primären Servern synchronisiert, logische Hierarchie (synchronisation subnet), verschiedene Stufen (strata), primäre Server befinden sich auf Stufe (stratum) 1 (root), sekundäre Server werden mit der nächsthöheren Stufe synchronisiert, Workstations sind auf der niedrigsten Stufe angesiedelt. 1 2 2 3 3 3 VIS-1 VertAlg-16 VIS1-VertAlg-16

NTP-Synchronisationsmodi Network Time Protocol NTP-Server synchronisieren in einem der drei Synchronisationsmodi: Multicast: für Hochgeschwindigkeits-LAN s (niedrige Genauigkeit) Procedure-Call: ähnlich dem Christian-Algorithmus (wenn höhere Genauigkeit erwünscht oder Multicast nicht durch Hardware unterstützt wird, benachbarte LAN s) Symmetrischer Modus: Synchronisation für Master-Server in LAN s, falls höchste Genauigkeit verlangt wird (Austausch von zusätzlichen Zeitinformationen) In allen Modi wird mit UDP/IP kommuniziert VIS-1 VertAlg-17 VIS1-VertAlg-17

Network Time Protocol Im Procedure-Call- und symmetrischem Modus paarweiser Nachrichtenaustausch Jede Nachricht enthält 3 Zeitstempel (time stamps): die lokalen Zeiten des Sendens und Empfangens der vorherigen Nachricht und die lokale Zeit des Sendens der aktuellen Nachricht Im symmetrischen Modus kann die Verzögerung nicht unbeträchtlich sein Nachrichten können verloren gehen, aber die drei Time stamps bleiben gültig Server B T i-2 T i-1 Zeit m m Server A T i-3 T i Zeit VIS-1 VertAlg-18 VIS1-VertAlg-18

Network Time Protocol Für jedes Nachrichtenpaar wird berechnet: - Offset o i : Schätzung des aktuellen Offsets zwischen beiden Uhren, - Delay d i : Die gesamte Übertragungszeit für beide Nachrichten. Es seien: o das tatsächliche Offset zwischen A und B, t und t die aktuellen Übertragungszeiten für beliebige Nachrichtenpaare m und m Server B Server A T i-3 T i-2 T i-1 m m T i Zeit Zeit Dann: T i-2 = T i-3 + t + o und T i = T i-1 + t - o Substitution: a = T i-2 - T i-3 und b = T i-1 - T i führt zu: d i = t + t = a - b o = o i + (t + t)/2 mit o i = (a + b)/2 Bsp: Ein Server A schickt um 10:00:00 lokaler Zeit eine Nachricht an Server B, dessen lokale Uhr zu diesem Zeitpunkt genau 11:00:00 zeigt. Übertragungs- und Verarbeitungszeiten seien konstant 1 Sek. a = 11:00:01-10:00:00 = 01:00:01 b = 11:00:02 10:00:03 = 00:59:59 d i = 01:00:01 00:59:59 = 00:00:02 o i = (01:00:01+00:59:59)/2 = 01:00:00 Durch die Tatsache, dass t, t > 0, kann gezeigt werden, dass o i -d i /2 < o < o i + d i /2. Daraus folgt: o i ist Schätzung des Offsets und d i ist die Genauigkeit dieser Schätzung VIS-1 VertAlg-19 VIS1-VertAlg-19

Network Time Protocol (Forts.) Datenfilterung-Algorithmus mit sukzessiven Paaren <oi,di>: statistische Größe Filter Dispersion (Maß für Qualität der Schätzung) wird berechnet, die 8 häufigsten Paaren werden aufbewahrt, der Wert von o i, der dem kleinsten Wert von d i entspricht, wird für die Schätzung von o herangezogen. NTP-Server bilden Paare mit mehreren Partnern. Datenfilterung und Partner-Selektion basierend auf minimaler Synchronisation Dispersion = Summe (Filter Dispersions mit Root). ------> d.h. es ist ein (guter!) best effort -Dienst (d.h. keine Garantie) VIS-1 VertAlg-20 VIS1-VertAlg-20

Logische Zeit Happened-before - Relation für Prozesse (Causal Ordering oder Potential Causal Ordering) p 1 a b m 1 p 2 c d m 2 physische Zeit p 3 e f HB1: Wenn Prozess p i : x ι y, dann x y HB2: Für jede Nachricht m gilt: send(m) rcv(m) HB3: Transitivität: Wenn x, y und z Ereignisse sind, dann gilt: wenn x y und y z, dann auch x z. aber : a II e (concurrent) VIS-1 VertAlg-21 VIS1-VertAlg-21

Logische Uhren monoton steigender Software-Zähler grundsätzlich: kein direkter Bezug zu physikalischer Uhr p 1 p 2 p 3 Logische Uhren Lamport Clock 1 2 a 1 e b m 1 3 4 c d LC1: Vor jedem Ereignis in p wird C p inkrementiert : C p := C p + 1 m 2 LC2: a) Wenn p i m sendet, dann enthält m auch t = C p (piggyback). b) Beim Empfang von (m, t) berechnet p j C q := max (C q, t) und wendet dann LC1 an bevor rec(m) seinen time-stamp bekommt f physikalische Zeit Anm.: a b => C(a) < C(b) - aber nicht notwendig auch umgekehrt Totale Ordnung der Zeiten z.b. über Prozess-Id (T i, i) 5 VIS-1 VertAlg-22 VIS1-VertAlg-22

Logische Uhren Ziel: Überwindung der Einschränkung von Lamport-Uhren Ein Zeitpunkt wird als Array von Ganzzahlen repräsentiert p 1 p 2 p 3 (1,0,0) (2,0,0) a Logische Uhren Vector Clock b (0,0,1) e m 1 (2,1,0) (2,2,0) c d m 2 (2,2,2) VC1: Initial V i [j] = 0 für i,j = 1,2,..,N VC2: Bei Ereignis eigenen Counter erhöhen V i [i] = V i [i]+1 VC3: send enthält lokalen Zeitvektor t = V i VC4: merge bei Empfang V i [j] = max(v j [j], t[j]) für j = 1,2,..,N Es gilt: a b => V(a) < V(b) und V(a) < V(b) => a b f physikalische Zeit VIS-1 VertAlg-23 VIS1-VertAlg-23

Gliederung Übersicht verteilte Algorithmen Zeitalgorithmen Zustandsalgorithmen VIS-1 VertAlg-24 VIS1-VertAlg-24

Auswahlalgorithmen dienen der Bestimmung eines speziellen Teilnehmers z.b. für die Festlegung des Koordinators in einem 2PC-Protokoll Anforderung: Wahl muss eindeutig sein, auch bei mehreren angestoßenen Wahlvorgängen Im Falle eines Server-Ausfalls könnten zwei Teilnehmer gleichzeitig eine Wahl anstoßen Ziel: Jedem Teilnehmer ist am Ende der gleiche gewählte Prozess mit der höchsten Prozess-Id bekannt hier (nur): Algorithmen für LANs weitergehende Fragen: Was ändert sich z.b. bei drahtlosen Netzen Was ändert sich bei großräumig verteilten Netzen? VIS-1 VertAlg-25 VIS1-VertAlg-25

Ring-basierter Auswahlalgorithmus Kommunikation im Uhrzeigersinn Wahl hat 2-Phasen: Wahl und Bekannt-machung Jeder Prozess kann eine Wahl beginnen. Er markiert sich selbst als Teilnehmer, sendet eine Wahl-Nachricht mit seiner Id an den Nachbarn; bei Empfang, vergleiche eigene Id (ownid) mit der Id in der Nachricht (msgid) msgid > ownid? 15 Nachricht weiterleiten, sich selbst als Teilnehmer markieren msgid < ownid? 28 Noch kein Teilnehmer? msgid gegen ownid tauschen, Nachricht weiterleiten und sich selbst als Teilnehmer markieren Bereits Teilnehmer? Nachricht verwerfen (andere Wahl bereits im Gang) msgid == ownid Knoten ist der neue Koordinator. Als Nicht-Teilnehmer markieren und Bekanntmachungsnachricht verschicken Teilnehmer merken sich Ergebnis, setzen sich auf Nicht-Teilnehmer, leiten Nachricht weiter Aufwand an Nachrichten: O(n) 9 4 3 17 nach [Tanenbaum, van Steen, 2003] 24 1 24 vsis vsis inf min inf min uni hh uni 10_11 hh ws 13_14 VIS-1 VIS1-VertAlg-26 Middlew-26

Bully-Algorithmus [Garcia-Molina, 1982] Prozesse mit Id.s sind bekannt. Bei einem Timeout vom Koordinator initiiert ein Prozess eine Wahl und sendet an alle Prozesse mit höheren Id.s Wahlnachrichten. Diese senden wiederum Wahlnachrichten an Prozesse mit höheren Id.s weiter. Prozess, der keine Antwort bekommt bzw. der die höchste Id. hat, macht sich als neuer Koordinator bekannt bester Fall: n-2 Nachrichten schlechtester Fall: O(n 2 ) Der Bully-Algorithmus nimmt nur an, dass jeder Prozess jeden anderen erreichen kann. Wenn der startende Prozess die niedrigste ID hat aus n Prozessen, fallen n (n 1)/2 Aufforderun-gen und (n 1) (n 2)/2 Bestätigungen an. Immer werden n 2 Ergebnismeldungen versandt, daher liegt der Nachrichtenauf-wand zwischen O(n) und O(n 2 ). vsis vsis inf min inf min uni hh uni 10_11 hh ws 13_14 VIS-1 VIS1-VertAlg-27 Middlew-27

Zusammenfassung Eigenschaften verteilter Systeme machen spezifische Lösungen für bekannte Probleme notwendig keine globale Zeit Zeitsynchronisation: physikalische und logische Uhren kein globaler Zustand Auswahlalgorithmen zur Bestimmung eines Koordinators Nebenläufigkeit Mechanismen zur Konsistenzwahrung (später: siehe Verteilte Transaktionen ) VIS-1 VertAlg-28 VIS1-VertAlg-28