Praktikable Einigungsalgorithmen

Ähnliche Dokumente
Randomisierte Algorithmen: Ben-Or

Wahlalgorithmen auf beliebigen Netzstrukturen. Verteilte Algorithmen (VA), WS 2003/04 43

Motivation. Gruppenkommunikation. Verteilte Anwendung. Gruppenkommunikation. HW-Multicast div. GC-Impl totale Ord. Kommunikationsnetz

Grundlagen: Überblick

Motivation. Überblick. Motivation. Sequentielle Verfahren

Die Byzantinischen Generäle

Byzantinische Fehlertoleranz durch Gruppenkommunikation am Beispiel des Rampart-Toolkit Frank Mattauch

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

The Byzantine Generals' Problem

Überblick. Zeit Motivation Network Time Protocol (NTP) Logische Uhren. c td VS (SS16) Zeit 9 1

Wechselseitiger Ausschluss in verteilten Systemen / Elektionsalgorithmen. Özden Urganci Ulf Sigmund Ömer Ekinci

Algorithmus von Berkeley (1989)

Lokale Strategien zur Garbage Collection Problemstellung der verteilten Gargabe Collection Algorithmen

Brewer s Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services Sigact News, 33(2), June 2002

Verteilte Algorithmen

Motivation für Fehlertoleranz in VS Fehlermodelle Erreichen von Fehlertoleranz. Verteilte Systeme. 7. Fehlertoleranz

Aufgabe 2.1: Lamports Uhren

Prinzipien der modernen Kryptographie Sicherheit

Vorlesung "Verteilte Systeme" Sommersemester Verteilte Systeme. 9. Verteilte Algorithmen

Überblick. Zeit Motivation Konvergenz-Algorithmus CNV Network Time Protocol (NTP) Logische Uhren. c td VS (SS17) Zeit 8 1

Erste Beispiele für verteilte Algorithmen

Fehlertolerante, konsistente Replikation mit Hilfe des PAXOS Algorithmus

Definition Message Authentication Code (MAC) Ein Message Authentication Code (MAC) bzgl. des Nachrichtenraumen M besteht aus den ppt Alg.

7 Fehlertoleranz. vs7 1

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Homomorphe Verschlüsselung

Überblick. Motivation. Motivation. Erzeugung eines virtuellen Baums beim Systemstart

Fehlertoleranz in eingebetteten Systemen

Fehlertolerante verteilte Systeme, Peer-To-Peer Netzwerke

9 Verteilte Verklemmungserkennung

NP-Vollständigkeit. Krautgartner Martin ( ) Markgraf Waldomir ( ) Rattensberger Martin ( ) Rieder Caroline ( )

Web Marshals Fighting Curly Link Farms

Informatik I. Informatik I Was haben wir gelernt? 28.2 Algorithmusbegriff Was geht nicht? 28.1 Was haben wir gelernt?

Asymmetrische Verschlüsselungsverfahren

Hybride Verschlüsselungsverfahren

Clustering (hierarchische Algorithmen)

Verteilte Algorithmen

Das zehnte Hilbertsche Problem. Seminar Arbeit von Jurij Bernhardt ( )

13. Woche: NP-Vollständigkeit Satz von Cook-Levin Anwendungen in der Kryptographie

Protokoll-Spezifikationen

P, NP und NP -Vollständigkeit

Rekursive Aufzählbarkeit Die Reduktion

Prinzipien der modernen Kryptographie Sicherheit

CPA-Sicherheit ist ungenügend

9: Verteilte Algorithmen

Verteilte Kyroptographie

Sicherheit von ElGamal

Kapitel III Selektieren und Sortieren

Zeitkomplexität (1) Proseminar Theoretische Informatik. Proseminar Theoretische Informatik: Lisa Dohrmann 1

Vorlesung Digitale Signaturen im Wintersemester 2017/-18. Socrative-Fragen aus der Vorlesung vom

Kapitel 12: Schnelles Bestimmen der Frequent Itemsets

Near Field Communication (NFC) in Cell Phones

Randomisierte Algorithmen 2. Erste Beispiele

Atomare Commit-Protokolle. Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Atomare Commit-Protokolle Folie 1

Weitere Verbesserungen

Berechenbarkeit und Komplexität: Rekursive Aufzählbarkeit und die Technik der Reduktion

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

Rechnernetze und verteilte Systeme (BSRvS II)

Hardcore-Prädikat. Definition Hardcore-Prädikat. Ziel: Destilliere Komplexität des Invertierens auf ein Bit.

Algorithmen. Von Labyrinthen zu. Gerald Futschek

Das System funktioniert, wenn A UND B gleichzeitig funktionieren. A: Komponente A funktioniert. A : B :

7.2 Conjoining Specifications

Nachrichtenkomplexität

Algorithmen und Datenstrukturen Heapsort

Vortrag 20: Kurze Vektoren in Gittern

Berechenbarkeitstheorie 19. Vorlesung

Das Halteproblem. H = { M w M hält auf w}.

Algorithmen und Datenstrukturen SS09. Foliensatz 15. Michael Brinkmeier. Technische Universität Ilmenau Institut für Theoretische Informatik

Überblick. Kap. 1.4: Minimum Weight Perfect Matching. 1.3 Blüten-Schrumpf Algorithmus für Maximum Matching

Bitte verwenden Sie nur dokumentenechtes Schreibmaterial!

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

Variante für unidirektionale Ringe

Parallele Prozesse. Prozeß wartet

Heute. Algorithmen für Ad-hoc- und Sensornetze. Erinnerung: Synchrone Kommunikation. Asynchrones Knotenmodell

Tableaukalkül für Aussagenlogik

Grundlagen verteilter Systeme

Ausgewählte Kapitel eingebetteter Systeme

Informatik I: Einführung in die Programmierung

Das Quadratische Reste Problem

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck

Fragen 1. Muss eine DTM ein Wort zu Ende gelesen haben, um es zu akzeptieren? a) Ja! b) Nein!

Distributed Memory Computer (DMC)

Verteilte Systeme Jürgen Nehmer, SS 2003

Reduktion / Hilberts 10. Problem

TCP flow control, congestion avoidance

Proseminar Komplexitätstheorie P versus NP Wintersemester 2006/07. Nichtdeterministische Turingmaschinen und NP

5 Verteilte Algorithmen. vs5 1

Grundlagen verteilter Systeme

2.4 Hash-Prüfsummen Hash-Funktion message digest Fingerprint kollisionsfrei Einweg-Funktion

Randomisierte Algorithmen

Dienstgüte in Mobilen Ad Hoc Netzen

Algorithmen. Von Labyrinthen zu. Gerald Futschek

Stromchiffre. Algorithmus Stromchiffre

Warum Modellierung? OE-Vorlesung 2016 Einführung in Petrinetze. Was ist ein Modell? Und warum Petrinetze? Petrinetze sind ein Modellierungswerkzeug.

Die Reduktion Hilberts 10. Problem

Algorithmen und Datenstrukturen Tutorium Übungsaufgaben

Definition 77 Sei n N. Der Median (das mittlere Element) einer total geordneten Menge von n Elementen ist deren i-kleinstes Element, wobei n i =.

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

Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung

Algo&Komp. - Wichtige Begriffe Mattia Bergomi Woche 6 7

Transkript:

Praktikable Einigungsalgorithmen Algorithmen für synchrone Systeme Atomarer Broadcast: siehe Aufgabe 4.4 Burns/Neiger Lamport/Shostak/Pease: Oral Messages; Signed Messages Algorithmen für asynchrone Systeme (mit Einschränkungen) Einigung bei perfekter Ausfallerkennung Paxos (Fail-Stop-Ausfälle) Castro-Algorithmus bzw. Byzantine Paxos Randomisierte Algorithmen (probabilistische Terminierung) Ben Or (Fail-Stop-Ausfälle) Ben Or (Byzantinische Fehler) ABBA Verteilte Algorithmen (VA), WS 2003/04 30 Algorithmen für synchrone Systeme Algorithmus wird in allen Knoten simultan gestartet Maximale Nachrichtenlaufzeit T ist bekannt Damit kann der Algorithmus in expliziten Runden ablaufen: Jeder Knoten wartet nach Start / nach jeder Runde die Zeit T ab (dann sind alle möglichen Nachrichten angekommen), verarbeitet diese und beginnt ggf. eine neue Runde Verteilte Algorithmen (VA), WS 2003/04 3

Algorithmus von Burns/Neiger Fast and Simple Distributed Consensus Synchrones Systemmodell Byzantinische fehlerhafte Knoten N M 2 + 4 M + Die N Knoten werden in M+ Gruppen eingeteilt: Gruppe : 2 M + Knoten Gruppe 2: 2 M + Knoten Gruppe 3: 2 M - Knoten... Gruppe M+: 3 Knoten Verteilte Algorithmen (VA), WS 2003/04 32 Algorithmus von Burns/Neiger Beschreibung des Algorithmus Jeder Knoten besitzt einen Wert, der mit dem Vorschlagswert des Knoten initalisiert wird In jeder Runde r senden die Knoten der Gruppe r ihren Wert an alle anderen Am Rundenende ermittelt jeder Knoten seinen Wert durch Mehrheitsbildung über die empfangenen Nachrichten. Für ausgebliebene Nachrichten wird der eigene Wert benutzt Wenn ein Knoten von allen Knoten der Gruppe r den gleichen Wert erhält, entscheidet er sich für diesen Wert Knoten, die sich bis zum Ende der (M+)-ten Runde noch nicht entschieden haben, entscheiden sich für ihren Wert zu diesem Zeitpunkt Verteilte Algorithmen (VA), WS 2003/04 33

Algorithmus von Burns/Neiger Überlegungen zur Korrektheit Wenn zwei Runden ausgeführt wurden, in denen alle Gruppenmitglieder korrekt sind, terminiert der Algorithmus In der ersten Runde treffen alle die gleiche Mehrheitsentscheidung Da (siehe unten) in jeder Gruppe die Mehrheit korrekt ist, können nachfolgende Runden mit fehlerhaften Gruppenmitgliedern diesen Wert nicht verändern In einer zweiten Runde mit nur korrekten Gruppenmitglieder erhalten alle einen Vektor aus identischen Werten Verteilte Algorithmen (VA), WS 2003/04 34 Algorithmus von Burns/Neiger Überlegungen zur Korrektheit (2) In jeder aktiven Gruppe ist die Mehrheit der Gruppenmitglieder korrekt In den ersten beiden Gruppen ist das offensichtlich (2 M + Mitglieder) Wenn die ersten beiden Gruppen nur korrekte Mitglieder hatten, terminiert der Algorithmus. Wenn die dritte Gruppe aktiv wird, kann es also nur noch M- fehlerhafte Knoten geben, damit ist bei 2 M - Knoten die Mehrheit korrekt, usw. Nach M+ Runden gabe es mindestens eine mit nur korrekten Mitgliedern Verteilte Algorithmen (VA), WS 2003/04 35

Algorithmus von Burns/Neiger Fazit Einigungsproblem lösbar in einem synchronen Modell sogar mit byzantinischen Fehlern falls nur wenige Knoten fehlerhaft sind (N M 2 + 4 M + ) Deterministischer Algorithmus, der sicher innerhalb von M+ Runden terminiert Weitere positive Eigenschaft: Je weniger Fehler, desto schneller terminiert der Algorithmus Was ist mit der "Lücke" zwischen M 2 + 4 M + > N > 3 M Beispiel M=: Ist das Problem mit einem fehlerhaften Knoten lösbar, falls N=4 oder N=5? Verteilte Algorithmen (VA), WS 2003/04 36 OM-Algorithmus von Lamport/Shostak/Pease Modell Synchrones Systemmodell, Byzantinische Fehler N > 3 M Betrachtet wird das Verständigungsproblem: Ein Anführer gibt einen Wert vor, alle korrekten Knoten sollen sich auf einen Wert einigen, der bei korrektem Anführer dessen Wert entsprechen muss Zunächst soll der einfachste Fall betrachtet werde: M =, N = 4 Verteilte Algorithmen (VA), WS 2003/04 37

OM-Algorithmus von Lamport/Shostak/Pease OM für 4 Knoten Der Anführer sendet seinen Wert (0, ) in der ersten Runde an alle anderen In einer zweiten Runde senden alle den erhaltenen Wert (oder 0, falls kein Wert erhalten) an alle anderen (ausgenommen den Anführer) Jeder der 4 Knoten trifft eine Mehrheitsentscheidung Verteilte Algorithmen (VA), WS 2003/04 38 OM-Algorithmus von Lamport/Shostak/Pease Fall : Anführer fehlerhaft: 0 0 0 Jeder Knoten erhält die Werte {,, 0} und entscheidet sich für Verteilte Algorithmen (VA), WS 2003/04 39

OM-Algorithmus von Lamport/Shostak/Pease Fall 2: anderer Knoten fehlerhaft 0 0 Jeder Knoten erhält mindestens 2x den Wert (Anführer und weiterer korrekter Knoten), damit fällt die Entscheidung sicher für den Wert Praktikable Einigungsalgorithmen Verteilte Algorithmen (VA), WS 2003/04 40 OM-Algorithmus von Lamport/Shostak/Pease OM für beliebig viele Knoten Algorithmus OM(0): Der Anführer sendet seinen Wert an alle anderen beteiligten Knoten Jeder Knoten verwendet dieses Wert, oder, falls er keinen Wert empfängt, den Wert 0 Algorithmus OM(m), m> Der Anführer sendet seinen Wert an alle anderen beteiligten Knoten Sei v i der Wert, den Knoten i im Schritt () erhalten hat, oder 0, falls er keinen Wert erhalten hat. Knoten i führt dann Algorithmus OM(m-) mit allen beteiligten Knoten außer dem Anführer durch, wobei er v i als Wert verwendet Verteilte Algorithmen (VA), WS 2003/04 4

OM-Algorithmus von Lamport/Shostak/Pease Ablauf: Sei v j (j i) der Wert, den der Knoten i im Schritt (2) vom Knoten j (durch den Algorithmus OM(m-)) erhalten hat, oder 0. Knoten i trifft eine Mehrheitsentscheidung über alle v x (einschliesslich v i ), und verwendet diesen als Ergebnis des Algorithmus OM(m) OM(m) startet n- Ausführung von OM(m-) jede dieser startet n-2 Ausführungen von OM(m-2) usw... Verteilte Algorithmen (VA), WS 2003/04 42 OM-Algorithmus von Lamport/Shostak/Pease Hinweise Um unterscheiden zu können, zu welcher Ausführung welche Nachrichten gehören, muss bei allen Nachrichten eine Pfadinformation mitgeschickt werden Bei Nancy Lynch ( Distributed Algorithms ) ist ein entsprechender Algorithmus als EIG: "Exponential Information Gathering" beschrieben Verteilte Algorithmen (VA), WS 2003/04 43

OM-Algorithmus von Lamport/Shostak/Pease Beispiel mit M=2, N=7 OM(2) Rückzug / Angriff OM() Rückzug & Angriff Rückzug OM(0) 0 2 3 4 5 6 Verteilte Algorithmen (VA), WS 2003/04 44 OM-Algorithmus von Lamport/Shostak/Pease OM(0) 0--3-2: R 0--4-2: A 0--5-2: A 0--6-2: A OM() 3-er Pfade 0--2: R OM() OM(2) OM(2) Ergebnis 0-: Angriff Knoten 2 betrachtet! 0-3--2: R 0-3-4-2: A 0-3-5-2: A 0-3-6-2: A 0-4--2: A 0-4-3-2: R 0-4-5-2: R 0-4-6-2: R 0-5--2: A 0-5-3-2: R 0-5-4-2: R 0-5-6-2: R 0-3-2: A 0-4-2: R 0-5-2: R 0-3: Angriff 0-4: Rückzug 0-5: Rückzug 0-2: A Rückzug 0-6--2: A 0-6-3-2: R 0-6-4-2: R 0-6-5-2: R 0-6-2: R 0-6: Rückzug Verteilte Algorithmen (VA), WS 2003/04 45

OM-Algorithmus von Lamport/Shostak/Pease Fazit In einem synchronen Modell lässt sich das Einigungsproblem mit byzantinischen Fehlern lösen falls N 3 M + ist (d.h. die Schranke, die durch den Beweis der Unmöglichkeit für N 3 M gesetzt wurde, ist eine "harte" Schranke) allerdings mit einem exponentiellen Nachrichtenaufwand, d.h. für größere M ist der Algorithmus nicht brauchbar Verteilte Algorithmen (VA), WS 2003/04 46 SM-Algorithmus von Lamport/Shostak/Pease Modell Synchrones Systemmodell Byzantinische Fehler Nachrichten können verifizierbar und nicht fälschbar signiert werden Siehe Besprechung der Übungsaufgabe 4 Hier lässt sich das Einigungsproblem sogar dann lösen, wenn beliebig viele Knoten fehlerhaft sind. Verteilte Algorithmen (VA), WS 2003/04 47

Algorithmen für asynchrone Systeme In der Literatur findet man viele weitere Algorithmen, die in einem synchronem System das Einigungsproblem lösen Leider hat man in der Praxis nicht immer ein System vorliegen, das die geforderten Synchronitätseigenschaften aufweist Was kann man in nicht synchronen Systemen tun? Wir wollen im Folgenden betrachten Algorithmen in einem (eingeschränkten) asynchronen Modell Paxos, Castro ( Byzantine Paxos ) Probabilistischen Algorithmen Ben Or, ABBA Verteilte Algorithmen (VA), WS 2003/04 48 Algorithmen für asynchrone Systeme Einfache Beispiele: Triviale Lösung wenn keine Fehler toleriert werden sollen Initiator-Knoten sendet seinen Wert an alle Alle übernehmen diesen Wert Funktioniert nicht, wenn Initiator ausfällt Einfache Erweiterung auf Fehler möglich? Verteilte Algorithmen (VA), WS 2003/04 49

Algorithmen für asynchrone Systeme Erster Versuch: Annahme: Ausfälle werden zuverlässig erkannt Anführer ist der lebendige Knoten mit kleinster ID. Da jeder Knoten von allen anderen weiss, ob diese ausgefallen sind, weiss jeder, ob er Anführer ist Anführer sendet seinen Wert an alle, jeder Knoten übernimmt diesen Wert Verteilte Algorithmen (VA), WS 2003/04 50 Algorithmen für asynchrone Systeme Erster Versuch: Annahme: Ausfälle werden zuverlässig erkannt Anführer ist derjenige lebendige Knoten mit der kleinsten ID. Da jeder Knoten von allen anderen weiss, ob diese ausgefallen sind, weiss jeder, ob er Anführer ist Anführer sendet seinen Wert an alle, jeder Knoten übernimmt diesen Wert Funktioniert leider nicht, falls Anführer beim Senden seines Wertes ausfällt! Kann man verhindern, dass ein neuer Anführer einen neuen, unterschiedlichen Wert sendet? Verteilte Algorithmen (VA), WS 2003/04 5

Algorithmen für asynchrone Systeme Zweiter Versuch: Zwei-Phasen-Protokoll Erst sicherstellen, dass ein Wert der einzig mögliche Entscheidungswert ist: Anführer sendet Wert als Vorschlag an alle. Jeder Knoten übernimmt diesen Wert als eigenen Vorschlagswert, für den Fall dass dieser selbst Anführer werden sollte Anführer wartet auf eine Bestätigung von allen nicht ausgefallenen Knoten Dann Entscheidung für Wert propagieren Falls Anführer beim propagieren seines Werts ausfällt, ist sichergestellt, dass der nächste Anführer den gleichen Wert propagiert, also keine Inkonsistenz entstehen kann Verteilte Algorithmen (VA), WS 2003/04 52 Algorithmen für asynchrone Systeme Zweiter Versuch: Beispielablauf P prepare(a) accept(a) decide(a) X P 2 X P 3 prepare(a) decide(a) P 4 accept(a) Verteilte Algorithmen (VA), WS 2003/04 53

Algorithmen für asynchrone Systeme Kritische Betrachtung des zweiten Versuchs Funkioniert gut bei perfekter Ausfallerkennung Probleme bei fehlerhafter Ausfallerkennung: Anführer wartet auf Antwort (accept) von allen nicht ausgefallenen Knoten. Wird ein ausgefallener Knoten nicht als solcher erkannt, wartet der Anführer ewig Wird ein funktionierender Knoten fälschlicherweise als ausgefallen betrachtet, können inkonsistente Entscheidungen entstehen Aktivierung eines neuen Anführers hängt von der exakten Erkennung des Ausfalls des alten Anführers ab Bei fehlerhafter Ausfallerkennung: Mehere Anführer zugleich, oder kein Anführer Verteilte Algorithmen (VA), WS 2003/04 54 Algorithmen für asynchrone Systeme Verbesserung des zweiten Versuchs Anführer wartet nicht auf eine Antwort von allen, sondern auf die Antwort eines Quorums aller Knoten Nicht von Ausfallerkennung abhängig, beleibiges Quorum an Knoten muss antworten (d.h. nicht zu viele Ausfälle) Bei Wechsel des Anführers muss der neue Anführer nun ein Quorum der Knoten befragen, ob es einen Vorschlagswert gab Bestimmung des Anführers Gestaltung des Algorithmus so, dass keine Inkonsistenzen entstehen, falls es mehr als einen Anführer gibt (möglicherweise aber keine gesicherte Terminierung) Verteilte Algorithmen (VA), WS 2003/04 55

Algorithmen für asynchrone Systeme Verbesserung des zweiten Versuchs Anführer wartet nicht auf eine Antwort von allen, sondern auf die Antwort eines Quorums aller Knoten Nicht von Ausfallerkennung abhängig, beleibiges Quorum an Knoten muss antworten (d.h. nicht zu viele Ausfälle) Bei Wechsel des Anführers muss der neue Anführer nun ein Quorum der Knoten befragen, ob es einen Vorschlagswert gab Bestimmung des Anführers Gestaltung des Algorithmus so, dass keine Inkonsistenzen entstehen, falls es mehr als einen Anführer gibt (möglicherweise aber keine gesicherte Terminierung) Das ist schon (fast) der komplette Paxos-Algorithmus! Verteilte Algorithmen (VA), WS 2003/04 56 Paxos Literatur zu Paxos Lamport: The Part-Time Parliament. Technical Report, DEC Systems Research Center, Sept. 989; auch in: ACM Transactions on Computer Systems, vol. 6., no. 2, 998 Lampson: How to Build a Highly Available System Using Consensus. Proc. 0th Int. Workshop on Distributed Algorithms (WDAG 96) Roberto De Prisco: Revisiting the PAXOS Algorithm. M.S. thesis, MIT, June 997; in Kurzform veröffentlicht als: R. De Prisco, B. Lampson, N. Lynch: Revisiting the PAXOS Algorithm. Proc. th Int. Workshop on Distributed Algorithms (WDAG 97) Lamport: Paxos Made Simple. ACM SIGACT News (Distributed Computing Column) 32, 4, Dec. 200 Verteilte Algorithmen (VA), WS 2003/04 57