 
                                Bully-Algorithmus Krebs Florian, Kus Matthias, Pisselhoy Andreas, Schwab Benjamin, Heinrich Jörg Programmierung verteilter Systeme Lab Institut für Informatik Universität Augsburg Universitätsstraße 14, 86159 Augsburg Tel.: (+49) 821/598-2174, Fax: -2175 URL: http://www.informatik.uni-augsburg.de/vs Agenda  Aufgabenstellung  Elections  Der Bully-Algorithmus Idee  Performance  Stärken und Schwächen des Algorithmus Stärken Schwächen  Implementierung des Algorithmus © Bernhard Bauer, all rights reserved 2005 2 Aufgabenstellung  Bully-Algorithmus - Implementierung des Bully-Algorithmus zur Durchführung von Elections in einem verteilten System. Der zu erstellende Prototyp soll über eine GUI verfügen, mit der die Funktionsweise des Algorithmus möglichst anschaulich dargestellt und simuliert werden kann. © Bernhard Bauer, all rights reserved 2005 3 Elections  Verfahren, um einen eindeutigen Prozess aus einer Menge von Prozessen zur Übernahme bestimmter Funktionen (Koordinator) zu bestimmen (zu wählen)  Einsatzgebiete: Verwaltung von ausschließlich exklusiv nutzbaren Ressourcen (mutal exclusion) Ring Master in Token-Ringnetzwerken Bus-Verwaltung bei Hardware  Alle Prozesse haben eine eindeutige ID  Koordinator wird Prozess mit höchster ID  Ablauf: Jeder Prozess pi hat eine Variable electedi, die die ID des Koordinators enthält Wird der Prozess zum 1.Mal Teilnehmer einer Wahl, setzt er seine Variable auf „┴“, und zeigt somit an, dass der Koordinator noch nicht definiert ist. Ein Prozess erkennt, dass kein gewählter Prozess existiert oder er bekommt keine Antwort vom aktuell gewählten Prozess Æ Election wird gestartet, um einen neuen Prozess als Koordinator zu wählen © Bernhard Bauer, all rights reserved 2005 4 Idee des Bully-Algorithmus  Eine Election (Wahl) wird gestartet, wenn der Koordinator ausgefallen ist Funktioniert in synchronen Netzen Knoten können zusammenbrechen, diese Timeouts werden zuverlässig entdeckt Annahmen Jeder Knoten kennt die IDs aller anderen Knoten Alle Knoten können miteinander kommunizieren Nachrichten Typen Election: kündigt eine Wahl an Antwort: antwortet auf eine Wahl Nachricht Koordinator: gibt die ID des gewählten Prozesses an In Ringen Es wird nur mit den Nachbarn kommuniziert Keiner kennt ID der anderen Prozesse Die Timeouts müssen bekannt sein, d.h. die Zeit die eine Nachricht unterwegs ist plus die Zeit die der Prozess zur Verarbeitung braucht © Bernhard Bauer, all rights reserved 2005 5 Performance  best case: Prozess mit der zweithöchsten ID findet den Fehler des Koordinators wählt sich selber und sendet (n-2) Koordinator Nachrichten  worst case: Benötigt O(N²) Nachrichten falls die niedrigste ID den Fehler findet (n-1) Prozesse mit höherer ID starten die Election © Bernhard Bauer, all rights reserved 2005 6 Stärken  auch nach Ausfall eines Knotens bleibt weiterhin die Verbindung bestehen (Gegensatz zu einem typischen Ring-Algorithmus)  sichere Festlegung auf den Prozess mit höchster ID als Koordinator durch wiederholte Wahl © Bernhard Bauer, all rights reserved 2005 7 Schwächen  es muss eine ständig aktuelle Liste aller Knoten erstellt werden (und eben auch sichergestellt werden, dass sie immer aktuell ist)  riesiger Overhead an unnötigen Elections (und damit Messages), da mit jeder Election bis zu n-2 neue Elections angestoßen werden (worauf dann wieder neue Elections angestoßen werden usw. usf.) © Bernhard Bauer, all rights reserved 2005 8