Leader-Election-Algorithmus
Ich bin die Erkundung verschiedener Architekturen in cluster-computing. Einige der beliebtesten sind:
- Master-Slave.
- RPC
- ...
In Master-slave, der normale Weg ist, um eine Maschine als master & eine Reihe von Maschinen, die wie Sklaven controlled by master. Einem bestimmten algo hier hat mich interessiert. Es heißt Leader-Election-Algorithmus, die eine gewisse Zufälligkeit in der Auswahl, welche der Maschinen wird zum master.
Meine Frage ist - Warum würde jemand wollen, wählen Sie eine master-Maschine auf diese Weise? Welche Vorteile hat dieser Ansatz im Vergleich zu manuell auswählen einer Maschine als master?
InformationsquelleAutor Srikar Appalaraju | 2011-01-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es einige Vorteile, die mit diesen algorithmen:
erfolgt dynamisch, so zum Beispiel Sie
können wählen Sie Knoten mit der höchsten
die Leistung und die Ankunft des neuen
Knoten werden kann, macht die bessere Wahl.
Anderen guten Ansatz, indem Sie dynamisch
Auswahl der leader ist, wenn man von ein
Knoten haben große Fehler (zum Beispiel
PC wird heruntergefahren) Sie haben anderen
Entscheidungen und es gibt keine Notwendigkeit zu
ändern Sie manuell den Führer.
wenn Sie manuell wählen Sie Knoten sollte
manuell konfigurieren Sie alle anderen Knoten
verwenden Sie diesen Knoten, und auch Ihre
die Zeit von Hand einstellen, ... aber das
algorithmen helfen, Sie zu behandeln
timing-Probleme.
in den meisten Fällen mit DHCP? zu viele
configs werden vorgeführt von diesem
algorithmen.
InformationsquelleAutor Saeed Amiri
Haupt-Idee der Verwendung solcher algorithmen ist, um loszuwerden, zusätzliche Konfiguration, fügen Sie etwas Art von Flexibilität und Stabilität des gesamten Systems. Aber in der Regel (in HPC/MPI-Anwendungen) master-Knoten wird manuell ausgewählt.
Angenommen, Ihre master-Auswahl-algorithmen ist ganz einfach - Holen Sie sich die Liste der verfügbaren Systeme und wählen Sie die mit der höchsten IP-Adresse. In diesem Fall können Sie einfach einen neuen Prozess starten-auf jedem Knoten, und es wird automatisch der master-Knoten.
Ein schönes Beispiel von solchen Ideen ist der WCCP-Protokoll ", benannt proxy" Auswahl Algorithmus, bei dem die Anzahl der proxies werden konnte, flexible und master-Knoten ausgewählt, die in der Laufzeit.
InformationsquelleAutor Elalfer
Unter Berücksichtigung eines Netzwerks von Knoten, wo es unerlässlich ist, um eine leader-Knotens zu allen Zeiten. Wenn der aktuelle Anführer stirbt, dann ist der Netzwerk-einigen, wie hat man die Wahl, einen anderen Führer. Angesichts dieses Szenarios und Anforderung gibt es zwei Möglichkeiten, es zu tun.
Dem zentralen system-Ansatz, wo es einen zentralen Knoten
die Entscheidung, wer wird der Führer sein. Wenn
die aktuelle leader stirbt, dann dieser
zentrale Knoten wird entscheiden, wer
übernehmen soll die leader-Rolle.
Aber dies ist single point of failure,
das ist der zentrale Knoten, der ist
verantwortlich für die Entscheidung, den Führer,
geht nach unten, dann es ist niemand da, um zu wählen, Führer, wenn der aktuelle Anführer stirbt.
Wo, wie in das gleiche Szenario, das wir können
verteilte leader-Auswahl, wie
in alle nodes, die zu einem Konsens kommen
wer der Führer sein sollte. So brauchen wir nicht zu haben, ein zentraler Knoten, der entscheidet, wer der Anführer sein sollte, damit die Beseitigung der single point of failure. Wenn der leader node stirbt, dann gibt es eine Möglichkeit zu erkennen, Ausfall von Knoten, und dann jeden Knoten wird eine verteilte leader-Auswahl-Algorithmus und sich gegenseitig zu einem Konsens kommen der Wahl einen Führer.
So, in kurz, wenn Sie haben ein system, das keine zentrale Kontrolle, wahrscheinlich weil das system soll skalierbar sein, ohne single point of failure, in diese Systeme zu nehmen, wählen Sie einige Knoten, leader Wahlen algorithmen verwendet werden.
InformationsquelleAutor Rezaul Hoque