Verteilte Systeme

Werbung
Überblick
11 Wahlalgorithmen
11.1 Motivation
11.2 Wahl auf Ringen
11.3 Wahl auf Bäumen
11.4 Wahl auf beliebigen Topologien
c Kapitza
VS (SS 2015)
11 Wahlalgorithmen
11–1
Motivation
Problem: Wahl eines Anführerknotens
Beispielszenarien
Koordinierung verteilter Aktionen
Erzeugung systemweit eindeutiger Token
Passive Replikation
Anlässe
Initialisierung im Rahmen des Systemstarts
Neukonfigurierung als Reaktion auf Fehler
Anforderungen
Eindeutigkeit: Zu jedem Zeitpunkt ist maximal ein Knoten der Anführer
Terminierung: Bestimmung des Anführers erfolgt in endlicher Zeit
Beispiele für zusätzliche Kriterien
Deterministischer Wahlalgorithmus
Benachrichtigung aller Knoten über das Ende bzw. Ergebnis der Wahl
c Kapitza
VS (SS 2015)
11 Wahlalgorithmen | 11.1 Motivation
11–2
Motivation
Systemmodell
Verteiltes System mit potenziell sehr vielen Knoten
Knoten
Gesamtzahl aller Knoten ist unbekannt
Nicht alle Knoten sind kontinuierlich Teil des Systems
Bedingung für deterministische Wahl: Jeder Knoten hat eindeutige ID
Unterschiedliche Netztopologien
Ring
Baum
Beliebige Strukturierung
→ Nicht jeder Knoten ist notwendigerweise mit jedem anderen verbunden
Herausforderungen
Wahlalgorithmen für nicht vollvermaschte Netzwerke
Effizienzsteigerung durch Ausnutzen von Wissen über die Netztopologie
Anführerwahl in Systemen mit komplexer Netztopologie
c Kapitza
VS (SS 2015)
11 Wahlalgorithmen | 11.1 Motivation
11–3
Literatur
Wahl auf Ringen
Nancy Lynch
Distributed Algorithms
Morgan Kaufmann Publishers Inc., 1996.
Gérard Le Lann
Distributed Systems – Towards a Formal Approach
Proceedings of the IFIP Congress 77, 7:155–160, 1977.
Ernest Chang and Rosemary Roberts
An Improved Algorithm for Decentralized Extrema-Finding in
Circular Configurations of Processes
Communications of the ACM, 22(5):281–283, 1979.
Gary L. Peterson
An O(n log n) Unidirectional Distributed Algorithm for the Circular Extrema Problem
ACM Transactions on Programming Languages and Systems, 4(4):758–762, 1982.
Wahl auf Bäumen und beliebigen Graphen
Friedemann Mattern
Verteilte Basisalgorithmen
Springer-Verlag, 1989.
c Kapitza
VS (SS 2015)
11 Wahlalgorithmen | 11.1 Motivation
11–4
Chang-Roberts-Algorithmus
Übersicht
Voraussetzungen
Jeder potenziell im System befindliche Knoten besitzt eine eindeutige ID
Auf den IDs ist eine totale Ordnung definiert (z. B. ID ∈ [1,...,n])
Ziel: Bestimmung des aktiven Knotens mit der höchsten ID
Ablauf
Start des Wahlalgorithmus
Annahme: Alle Knoten starten Algorithmus zur selben Zeit
Jeder Knoten sendet eigene Knoten-ID im Ring weiter
Jeder Knoten wird wählbar
Empfang einer ID i
Falls i > eigene ID
Falls i < eigene ID
Falls i = eigene ID
c Kapitza
VS (SS 2015)
Knoten sendet i weiter
Knoten ist nicht mehr wählbar
Nachricht ignorieren
Falls Knoten wählbar, dann ist er als Anführer gewählt
Sonst: Nachricht ignorieren
11 Wahlalgorithmen | 11.2 Wahl auf Ringen
11–5
Chang-Roberts-Algorithmus
Beispiel
3
2
5
4
c Kapitza
VS (SS 2015)
1
11 Wahlalgorithmen | 11.2 Wahl auf Ringen
11–6
Chang-Roberts-Algorithmus
Beispiel
3
2
3
2
5
4
5
4
1
1
c Kapitza
VS (SS 2015)
11 Wahlalgorithmen | 11.2 Wahl auf Ringen
11–6
Chang-Roberts-Algorithmus
Beispiel
3
2
5
4
5
4
c Kapitza
VS (SS 2015)
1
11 Wahlalgorithmen | 11.2 Wahl auf Ringen
11–6
Chang-Roberts-Algorithmus
Beispiel
3
4
2
5
4
1
5
c Kapitza
VS (SS 2015)
11 Wahlalgorithmen | 11.2 Wahl auf Ringen
11–6
Chang-Roberts-Algorithmus
Beispiel
3
4
2
5
4
1
5
c Kapitza
VS (SS 2015)
11 Wahlalgorithmen | 11.2 Wahl auf Ringen
11–6
Chang-Roberts-Algorithmus
Beispiel
3
4
2
5
5
4
c Kapitza
VS (SS 2015)
1
11 Wahlalgorithmen | 11.2 Wahl auf Ringen
11–6
Chang-Roberts-Algorithmus
Beispiel
3
5
5
2
5
4
c Kapitza
VS (SS 2015)
1
11 Wahlalgorithmen | 11.2 Wahl auf Ringen
11–6
Chang-Roberts-Algorithmus
Analyse
Bemerkungen
Einfacher Algorithmus auf Basis eines einfachen Systemmodells
Teilnehmer müssen die Gesamtzahl aller Knoten n nicht kennen
Mögliche Erweiterung
Anführer sendet nach seiner Wahl eine Benachrichtigung durch den Ring
Sauberes Beenden des Wahlalgorithmus auf allen Knoten möglich
Korrektheit
Eindeutigkeit
Nachricht mit einer bestimmten ID wird von genau einem Knoten erzeugt
Knoten mit höchster ID leitet nur seine eigene Nachricht weiter
Ein Knoten wird nur gewählt, wenn seine ID von allen weitergereicht wurde
Terminierung
Die Nachricht mit der größten ID wird von jedem Knoten weitergereicht
Nach n Schritten kommt die größte ID wieder beim Ursprungsknoten an
Achtung: Terminierung ist bei Ausfällen von Knoten nicht sichergestellt
c Kapitza
VS (SS 2015)
11 Wahlalgorithmen | 11.2 Wahl auf Ringen
11–7
Chang-Roberts-Algorithmus
Komplexität
Annahmen bei der Analyse der Zeitkomplexität
Bearbeitungsdauer von Nachrichten ist vernachlässigbar
Nachrichten kommen innerhalb einer maximalen Nachrichtenlaufzeit an
Bester Fall: Knoten sind den IDs nach aufsteigend angeordnet
n Nachrichtenlaufzeiten
n + (n − 1) · 1 = 2n − 1 Nachrichten → O(n)
Schlimmster Fall: Knoten sind den IDs nach absteigend angeordnet
n
PNachrichtenlaufzeiten
n
n·(n+1)
Nachrichten → O(n2 )
i=1 i =
2
Durchschnittlicher Fall
Annahme: Alle (n − 1)! möglichen ID-Verteilungen gleichwahrscheinlich
n Nachrichtenlaufzeiten
Nachrichtenaufwand: O(n log n) (siehe [Chang et al.])
c Kapitza
VS (SS 2015)
11 Wahlalgorithmen | 11.2 Wahl auf Ringen
11–8
Chang-Roberts-Algorithmus
Initiierung
Veränderte Startbedingung
Gleichzeitiger Start des Algorithmus auf allen Knoten unrealistisch
Ein Knoten startet den Algorithmus durch Senden seiner ID
Andere Knoten beteiligen sich erst, nachdem sie eine Nachricht erhalten
Zeitkomplexität
Bester Fall
Knoten mit höchster ID initiiert Wahl
n Nachrichtenlaufzeiten
Schlechtester Fall
Knoten mit höchster ID wacht als Letzter auf
(n − 1) + n = 2n − 1 Nachrichtenlaufzeiten
Optimierung
Unterdrückung der eigenen Nachricht, falls Aufwecken durch größere ID
Reduzierung der im besten Fall erforderlichen Nachrichten auf n
c Kapitza
VS (SS 2015)
11 Wahlalgorithmen | 11.2 Wahl auf Ringen
11–9
Chang-Roberts-Algorithmus
Variante
Veränderte Architektur: Bidirektionaler Ring
Unterschiede zur Standardvariante
Start: Jeder Knoten bestimmt die Senderichtung der eigenen ID zufällig
Jeder Knoten speichert die höchste ID imax , die er bisher gesehen hat
Unterdrückung einer neu empfangenen ID i , falls i < imax
Senderichtung der Weiterleitung abhängig
3
von bisheriger Senderichtung einer ID
Bemerkungen
2
5
Geringere Anzahl erforderlicher
Nachrichten im Durchschnittsfall
Schlimmster Fall
Geringere Auftrittswahrscheinlickeit
Nachrichtenaufwand weiterhin O(n2 )
5
4
1
4
c Kapitza
VS (SS 2015)
11 Wahlalgorithmen | 11.2 Wahl auf Ringen
11–10
Wahl auf Bäumen
Übersicht
Baumstruktur
Ungerichtete Kanten
Keine Zyklen
Vergleich zur Wahl auf Ringen
Wahl auf mit
Bäumen
Kommunikation
unterschiedlich vielen Nachbarknoten
Potenzial für Divide-and-Conquer-Ansätze
09
16
18
14
02
15
06
03
11
07
10
12
17
05
04
13
01
c Kapitza
VS (SS 2015)
08
11 Wahlalgorithmen | 11.3 Wahl auf Bäumen
11–11
Wahl auf Bäumen
Traversieren
Sequentielles Traversieren – Beispiel: Tiefensuche
public class VSNode {
private final int id = [ID des lokalen Knotens];
private final List<VSNode> children = [Liste der Kindknoten];
public int findMaxID() {
int maxID = id;
for(VSNode child: children) {
int childMaxID = child.findMaxID();
if(maxID < childMaxID) maxID = childMaxID;
}
return maxID;
} }
Paralleles Traversieren – Beispiel: Wellenverfahren
Explorationswelle durchläuft den Baum bis zu den Blättern
Echowelle
kommt zurück und bestimmt die höchste ID
Informationswelle teilt allen Knoten das Ergebnis mit
c Kapitza
VS (SS 2015)
11 Wahlalgorithmen | 11.3 Wahl auf Bäumen
11–12
■
Genauere Beschreibung des Wahlal
● Einauf
Starter
sendet Explosionsna
Wahl auf Bäumen
Algorithmus
Wahl
Bäumen
● Ein Starter sendet Explosionsnach
Dedizierte Initiatorknoten senden ExplorerEininnerer
Blattknoten,
Explosd
●●Ein
Knotender
miteine
k Kanten,
nachrichten an alle ihre
Nachbarknoten
eine
Echonachricht
mit erstmals
seiner
nachrichten
erhalten der
hat,
sendet ID
a
● Ein
innerer
Knoten,
Blattknoten senden bei Echonachricht
Empfang einer Explorermit dem
Maximum
i
● Ein innerer Knoten,
der erstmals
sendet
Expe
nachricht die eigene ID empfängt,
als Echonachricht
zurück wiederum
i
Wahl.fm: 07.11.05 09:03
a
empfängt,
sendet wiederum
Explo
anderen Richtungen
aus
max(a,b,
c
Innere Knoten mit k Kanten
Wahl
auf
Bäumen
anderen Richtungen aus
b
Weiterleitung der
ersten Explorernachricht
Algorithmen
für Verteilte●Systeme
(AVS),
WS mit
2005/06
Ein innerer
Knoten
k Kanten, der au
in alle übrigen Richtungen
nachrichten erhalten hat, sendet auf de
(C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität
●
Erhält ein Knoten
nach
Versenden
Echonachricht
mit dem
Maximum aller I
Nach Erhalt von Echonachrichten auf k − 1 Kanten:
a
max(a,b,c)
Echonachricht
eine
Echon
c
Senden einer Echonachricht
e mit dem Maximum
allerweitere
● Ein Blattknoten, der eine
Explosi
b
bisher bekannten IDs über
die verbleibende
Kante IDs die höchste I
Maximum
beider
●
Erhält ein
Knoten
nach seiner
Versenden
sein
eine
Echonachricht
mit
ID
Ein
Blattknoten,
der
eine
Explosio
x
●
Echonachricht
eine weitere Echonachri
Falls Empfang einer weiteren Echonachricht
e0:
10
Maximum
beider
die höchste ID
ID-Nuz
Echonachricht
mit
Höchste ID im Netz eine
ist Maximum
der IDs
von e und
e 0 IDsiseiner
y
i
i
– Muss lediglich
ein beliebiger
Anfüh
c Kapitza
i
lediglich ein beliebiger
Anführer
VS (SS 2015)
11 Wahlalgorithmen | 11.3 Wahl –aufMuss
Bäumen
11–13 be
x
05 09:03
10
y
Wahl auf Bäumen
09
Beispiel
16
18
14
02
15
06
03
11
07
10
12
17
05
04
13
01
c Kapitza
08
VS (SS 2015)
11 Wahlalgorithmen | 11.3 Wahl auf Bäumen
11–14
Wahl auf Bäumen
09
Beispiel
16
18
14
02
15
06
03
11
07
10
12
17
05
04
13
01
c Kapitza
08
VS (SS 2015)
11 Wahlalgorithmen | 11.3 Wahl auf Bäumen
11–14
Wahl auf Bäumen
09
Beispiel
16
18
16
9
14
02
15
06
03
11
07
10
12
17
05
04
8
1
13
01
c Kapitza
08
VS (SS 2015)
11 Wahlalgorithmen | 11.3 Wahl auf Bäumen
11–14
Wahl auf Bäumen
09
Beispiel
16
18
16
9
14
02
15
06
03
11
07
10
12
17
05
04
8
1
13
01
c Kapitza
08
VS (SS 2015)
11 Wahlalgorithmen | 11.3 Wahl auf Bäumen
11–14
Wahl auf Bäumen
09
Beispiel
16
18
16
9
14
02
15
16
06
3
03
11
07
10
12
17
8
05
04
8
1
13
01
c Kapitza
08
VS (SS 2015)
11 Wahlalgorithmen | 11.3 Wahl auf Bäumen
11–14
Wahl auf Bäumen
09
Beispiel
16
18
16
9
14
02
15
16
06
3
16
03
11
07
10
12
17
8
05
04
8
1
13
01
c Kapitza
08
VS (SS 2015)
11 Wahlalgorithmen | 11.3 Wahl auf Bäumen
11–14
Wahl auf Bäumen
09
Beispiel
16
18
18
16
9
14
14
02
15
16
06
6
3
16
16
03
11
07
10
12
17
8
05
04
8
1
4
13
13
01
c Kapitza
08
VS (SS 2015)
11 Wahlalgorithmen | 11.3 Wahl auf Bäumen
11–14
Wahl auf Bäumen
09
Beispiel
16
18
18
16
9
14
14
02
15
18
16
06
6
3
16
16
03
11
07
10
12
17
17
8
05
04
8
1
4
13
13
01
c Kapitza
08
VS (SS 2015)
11 Wahlalgorithmen | 11.3 Wahl auf Bäumen
11–15
Wahl auf Bäumen
09
Beispiel
16
18
14
02
15
18
06
16
03
11
07
10
12
17
17
05
04
13
01
c Kapitza
08
VS (SS 2015)
11 Wahlalgorithmen | 11.3 Wahl auf Bäumen
11–15
Wahl auf Bäumen
09
Beispiel
16
18
14
02
15
18
06
16
03
11
07
16
10
12
17
18
17
05
04
13
01
c Kapitza
08
VS (SS 2015)
11 Wahlalgorithmen | 11.3 Wahl auf Bäumen
11–15
Wahl auf Bäumen
09
Beispiel
16
18
14
02
15
06
18!
16
03
11
07
18!
10
18!
12
18
18!
17
05
04
13
01
c Kapitza
08
VS (SS 2015)
11 Wahlalgorithmen | 11.3 Wahl auf Bäumen
11–15
Wahl auf beliebigen Topologien
Überblick
Annahmen über Netzstruktur
Zusammenhängender Netzwerkgraph
Bidirektionale Verbindungen zwischen Knoten
Netzwerkgraph kann Zyklen aufweisen
Sequentielles Traversieren – Beispiel: Tiefensuche
Initiatorknoten erstellt Token und sendet es über eine Kante kinit
Empfang des Tokens über eine Kante krecv
Weitergabe des Tokens an einen Nachbarn, der das Token noch nicht hatte
Falls kein solcher Nachbar bekannt: Senden des Tokens über Kante krecv
Zyklenerkennung anhand der Kante, über die Token empfangen wurde
Terminierung, sobald Initiator das Token über die Kante kinit empfängt
Alternativer Ansatz: Konstruktion eines virtuellen Baums
Initial beim Systemstart oder
Im Nachhinein mittels Adoptionsverfahren
c Kapitza
VS (SS 2015)
11 Wahlalgorithmen | 11.4 Wahl auf beliebigen Topologien
11–16
Erzeugung eines virtuellen Baums beim Systemstart
Anmeldung bei einer globalen Registry
Registry kennt die Adressen aller bereits im System befindlicher Knoten
Bereitstellung von Knotenadressen für Verbindungsaufbau
Verbindungsaufbau
Verwaltung eines
lokalen Levels
Wurzelknoten des
Baums hat Level 0
Elternknoten: Nachbar
mit kürzester Distanz
zum Wurzelknoten
Wiederholung der
Auswahl bei Abbruch
der Elternverbindung
c Kapitza
VS (SS 2015)
private int level = -1;
private VSNode parent = null;
public void connect(List<VSNode> nodes) {
for(VSNode node: nodes) {
// Verbindungsaufbau
boolean connected = [Aufbau der Verbindung];
if(!connected) continue;
// Bestimmung des Elternknotens
if((level < 0) || (level > node.level)) {
level = node.level + 1;
parent = node;
} } }
11 Wahlalgorithmen | 11.4 Wahl auf beliebigen Topologien
11–17
Adoptionsverfahren
Algorithmus
Grundprinzip wie bei Wahl auf Bäumen: Explorations- und Echowelle
Nachrichten
Explorernachrichten beinhalten ID des korrespondierenden Initiators
Echonachrichten tragen Initiator-ID der zugehörigen Explorernachricht
Verwaltung von IDs an Knoten und Kanten
Speicherung der höchsten einem Knoten bekannten Initiator-ID (IDi )
Elternkante: Kante, über die Explorernachricht mit IDi empfangen wurde
Markierung der Sendekante einer Explorernachricht mit Initiator-ID
Empfang einer Explorernachricht x über Kante k mit Markierung m
Falls
Falls
Falls
Falls
c Kapitza
IDx = IDm
IDx < IDm
IDm < IDx ≤ IDi
IDm ≤ IDi < IDx
VS (SS 2015)
Kante k ist nicht Teil des virtuellen Baums
Ignorieren der eintreffenden Explorernachricht x
Aktualisierung von m, Senden von x über k
Adoption: k wird neue Elternkante
Weiterleitung von x über bisherige Elternkante
11 Wahlalgorithmen | 11.4 Wahl auf beliebigen Topologien
11–18
ispielAdoptionsverfahren
09
Beispiel
16
18
14
02
15
06
03
11
07
10
12
17
05
04
13
01
c Kapitza
08
VS (SS 2015)
11 Wahlalgorithmen | 11.4 Wahl auf beliebigen Topologien
11–19
ispielAdoptionsverfahren
09
Beispiel
16
18
14
02
15
06
03
11
07
10
12
17
05
04
13
01
c Kapitza
08
VS (SS 2015)
11 Wahlalgorithmen | 11.4 Wahl auf beliebigen Topologien
11–19
ispielAdoptionsverfahren
09
Beispiel
16
18
14
* 02*
* *
15
06
03
11
07
10
12
17
05
04
13
01
c Kapitza
08
VS (SS 2015)
11 Wahlalgorithmen | 11.4 Wahl auf beliebigen Topologien
11–19
ispielAdoptionsverfahren
09
Beispiel
16
18
14
* 02*
* *
15
06
03
11
07
10
12
17
05
04
*
13
01
c Kapitza
08
VS (SS 2015)
11 Wahlalgorithmen | 11.4 Wahl auf beliebigen Topologien
11–19
ispielAdoptionsverfahren
09
Beispiel
16
18
14
* 02*
* *
15
06
03
11
07
10
12
17
05
04
*
13
01
c Kapitza
08
VS (SS 2015)
11 Wahlalgorithmen | 11.4 Wahl auf beliebigen Topologien
11–19
ispielAdoptionsverfahren
09
Beispiel
16
18
14
* 02*
* *
15
06
03
11
07
10
12
17
05
04
*
13
01
c Kapitza
08
VS (SS 2015)
11 Wahlalgorithmen | 11.4 Wahl auf beliebigen Topologien
11–19
ispielAdoptionsverfahren
09
Beispiel
16
18
14
* 02*
* *
15
06
03
*
11
07
10
12
17
05
04
*
13
01
c Kapitza
08
VS (SS 2015)
11 Wahlalgorithmen | 11.4 Wahl auf beliebigen Topologien
11–19
ispielAdoptionsverfahren
09
Beispiel
16
18
14
* 02*
* *
15
06
03
*
11
07
10
12
17
05
04
*
13
01
c Kapitza
08
VS (SS 2015)
11 Wahlalgorithmen | 11.4 Wahl auf beliebigen Topologien
11–20
ispielAdoptionsverfahren
09
Beispiel
16
18
14
* 02*
* *
15
06
03
*
11
07
10
12
17
05
04
*
13
01
c Kapitza
08
VS (SS 2015)
11 Wahlalgorithmen | 11.4 Wahl auf beliebigen Topologien
11–20
ispielAdoptionsverfahren
09
Beispiel
16
18
14
* 02*
* *
15
06
03
* 11
07
10
12
17
05
04
*
13
01
c Kapitza
08
VS (SS 2015)
11 Wahlalgorithmen | 11.4 Wahl auf beliebigen Topologien
11–20
ispielAdoptionsverfahren
09
Beispiel
16
18
14
* 02*
* *
15
06
*
* 11
03
*
07
10
12
17
05
04
*
13
01
c Kapitza
08
VS (SS 2015)
11 Wahlalgorithmen | 11.4 Wahl auf beliebigen Topologien
11–20
ispielAdoptionsverfahren
09
Beispiel
16
18
14
* 02*
* *
15
*
06
*
* 11
03
*
07
10
12
17
*
05
04
*
13
01
c Kapitza
08
VS (SS 2015)
11 Wahlalgorithmen | 11.4 Wahl auf beliebigen Topologien
11–21
ispielAdoptionsverfahren
09
Beispiel
16
18
14
* 02*
* *
15
*
06
*
* 11
03
*
07
10
12
17
*
05
04
*
13
01
c Kapitza
08
VS (SS 2015)
11 Wahlalgorithmen | 11.4 Wahl auf beliebigen Topologien
11–21
ispielAdoptionsverfahren
09
Beispiel
16
18
14
* 02*
* *
15
*
06
*
* 11
03
*
07
10
12
17
*
05
04
*
13
01
c Kapitza
08
VS (SS 2015)
11 Wahlalgorithmen | 11.4 Wahl auf beliebigen Topologien
11–21
ispielAdoptionsverfahren
09
Beispiel
16
18
14
* 02*
* *
15
*
06
*
*
* 11
03
07
10
12
17
*
05
04
*
13
*
01
c Kapitza
VS (SS 2015)
08
11 Wahlalgorithmen | 11.4 Wahl auf beliebigen Topologien
11–21
Herunterladen