Algorithmen für Peer-to-Peer-Netzwerke

Werbung
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Algorithmen für
Peer-to-Peer-Netzwerke
Sommersemester 2004
28.05.2004
6. Vorlesung
Christian Schindelhauer
1
HEINZ NIXDORF INS TITUT
Kapitel III
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Skalierbare
P2PNetzwerke
CHORD
Algorithmen für Peer-to-PeerNetzw erke
2
Chernoff-Schranke
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Bernoulli-Experiment
– Entweder 0 mit Wahrscheinlichkeit 1-p
– Oder 1 mit Wahrscheindlichkeit p
Algorithmen für Peer-to-PeerNetzw erke
3
HEINZ NIXDORF INS TITUT
Hohe Wahrscheinlichkeit
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Lemma
Falls Aussage A(i) für jedes von n Objekten i mit Wahrscheinlichkeit 1-n-c
gilt, dann gilt (A(1) und A(2) und ... und A(n)) mit Wahrscheinlichkeit
mindestens 1-n-(c-1)
Beweis:
Für alle i gilt:
Somit ist:
P[¬A(i)] ≤ n-c
P[¬ A(1) oder ¬ A(2) oder ... ¬ A(n) ] ≤ n ⋅ n-c
P[¬(¬ A(1) oder ¬ A(2) oder ... ¬ A(n)) ] ≤ 1- n ⋅ n-c
Nach DeMorgan:
P[A(1) und A(2) und ... A(n) ] ≤ 1- n ⋅ n-c
Algorithmen für Peer-to-PeerNetzw erke
4
HEINZ NIXDORF INS TITUT
Chord als DHT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
rV( b) = b+1 mod 8
n: Knotenanzahl, Knotenmenge V
5
k: Anzahl Schlüssel, Schlüsselmenge
K
6
m: Hashwertlänge: m >> log
max{K,N}
Zwei Hash-Funktionen bilden auf
{0,..,2m-1} ab
– rV(b): bildet Peer b zufällig auf
{0,..,2m-1} ab
– rK(i): bildet Index i zufällig auf
{0,..,2m-1} ab
Abbildung von i auf einen Peer b = fv(i)
–
5
7
3
rK( i) = 3i-2 mod 8
4
2
2
6
Index
3
0
2
1
0
fV(i) := arg minb∈V (rB(b)-rK(i)) mod 2m
Algorithmen für Peer-to-PeerNetzw erke
5
Eigenschaften der Datenstruktur
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Lemma
1. Der Abstand zweier benachbarter Peers auf dem Ring ist
a) im Erwartungswert 2m/n,
b) O((2m/n) log n) (mit hoher W‘keit) und
c) mindestens 2m/nc (mit hoher W‘keit) für eine Konstante c>1
2. In einem Intervall des Rings der Länge w 2m/n sind (mit hoher W‘keit)
a) O(log n + w log n) Peers, falls w=O(log n)
b) O(w) Peers, falls w=Ω(log n)
Algorithmen für Peer-to-PeerNetzw erke
6
Balance in Chord
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
– n: Anzahl der Knoten im P2P-Netzwerk
– k: Anzahl der Schlüssel ≥ 1
Theorem
Elemente werden auf die Peers wie folgt verteilt:
– Falls k=O(n):
In jedem Knoten werden höchstens O(log n + k/n log2 n) Schlüssel
gespeichert mit hoher W’keit
– Falls k=Ω(n):
In jedem Knoten werden höchstens O(k/n log n) Schlüssel gespeichert mit
hoher W’keit
Beweis
– Übung
– Tipp:
Algorithmen für Peer-to-PeerNetzw erke
7
HEINZ NIXDORF INS TITUT
Die Datenstruktur von Chord
 Für jeden Knoten b:
– successor: Nachfolger
– predecessor: Vorgänger
– Für i ∈ {0,..,m-1}
• Finger[i] := Der Knoten der
dem Wert rV(b+2i) folgt
 Für kleine i werden die FingerEinträge immer gleich
– Nur unterschiedliche
Fingereinträge werden
gespeichert
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
successor
5
predecessor
6
finger[0]
5
7
finger[1]
0
finger[2]
4
2
3
2
1
0
Algorithmen für Peer-to-PeerNetzw erke
8
HEINZ NIXDORF INS TITUT
Suchen in Chord
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Theorem
Die Suche braucht mit hoher W’keit O(log n) Sprünge
Suchalgorithmus für Element s:
– Abbruch(b,s):
• Knoten b,b’=b.succ gefunden, mit rK(s) ∈ [rV(b),rV(b‘)|
– Hauptroutine: Starte mit irgendeinem Knoten b
while not Abbruch(b,s) do
for i=m downto 0 do
if rK(s) ∈ [rV(b.finger[i]),rV(finger[i+1])] then
b ← b.finger[i]
fi
b.finger[m]
od
b
b.finger[m-1]
c
x
sy
Algorithmen für Peer-to-PeerNetzw erke
9
HEINZ NIXDORF INS TITUT
Suchen in Chord
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Theorem
Die Suche braucht mit hoher W’keit O(log n) Sprünge
Beweis:
• Mit jedem Sprung wird die Entfernung zum Ziel mindestens halbiert
• Zu Beginn ist der Abstand höchstens 2m
• Der Mindestabstand zweier benachbarter Peers ist 2m/nc mit hoher W’keit
• Damit ist die Laufzeit beschränkt durch c log n
b.finger[m]
b
b.finger[m-1]
c
x
sy
Algorithmen für Peer-to-PeerNetzw erke
10
HEINZ NIXDORF INS TITUT
Fingeranzahl
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Lemma
1. Der Ausgrad im CHORD-Netzwerk ist O(log n) mit hoher W‘keit
2. Der Eingrad im CHORD-Netzwerk ist O(log2 n) mit hoher W‘keit
Beweis
1. Der minimale Abstand zweier Peers ist 2m/nc (mit hoher W‘keit)
– Damit ist der Ausgrad beschränkt durch c log n (mit hoher W‘keit)
2. Der maximale Abstand zweier Peers ist O(log n 2m/n)
– Jeder Peer, der mit einem seiner Finger auf diese Linie zeigt, erhöht den
Eingrad des nachstehenden Peers.
– Die Gesamtlänge der Streckenabschnitte, wo solche Peers liegen ist
O(log2n 2m/n)
b.finger[m]
– Damit ist w=O(log2n)
a.finger[m-1]
b
a
x
y
Algorithmen für Peer-to-PeerNetzw erke
11
Einfügen von Peers
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Theorem
O(log2 n) Nachrichten genügen mit hoher W’keit, um Peers in
CHORD aufzunehmen
Algorithmen für Peer-to-PeerNetzw erke
12
Einfügen von Peers
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
o Zuerst wird Zielgebiet in O(log n)
Schritten gesucht
o Die ausgehenden Zeiger werden vom
Vorgänger und Nachfolger
übernommen und angepasst
–Die Zeiger müssen jeweils um bis zu
O(log n) Schritte entlang des Rings
angepasst werden
o Der Eingrad des neuen ist mit hoher
W’keit O(log2 n)
–Zu suchen kostet jeweils O(log n)
–Diese sind jeweils in Gruppen von
maximal O(log n) benachbart.
–Damit fallen nur O(log n) Suchen á
Kosten O(log n) an
–Die Aktualisierung hat jeweils
konstante Kosten
Algorithmen für Peer-to-PeerNetzw erke
13
Der erwartete Aufwand zum Aufnehmen und
Entfernen
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Theorem
Ein Peer kann in CHORD mit erwarteter Anzahl von O(log n)
Nachrichten aufgenommen werden
Beweisidee
– Der Ausgrad für jeden Peer ist mit hoher Wahrscheinlichkeit O(log n)
– Damit ist der erwartete Eingrad ebenfalls O(log n)
– Die erwartete Anzahl von Sprüngen des Einfüge-Algorithmus ist dann
ebenfalls O(1)
Der Aufwand zum Entfernen von Peers ist ebenso hoch
Algorithmen für Peer-to-PeerNetzw erke
14
Balancierung durch virtuelle Peers
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
 Jeder Peer unterhält O(log n) virtuelle
Peers auf dem Ring
–Dadurch erhöht sich der Ausgrad auf
O(log2n)
 Vorteile:
–Der Eingrad ist weiterhin O(log2n) mit
hoher W‘keit
–Einfüge/Lösch-Operationen sind mit
O(log2n) Nachrichten möblich mit
hoher W‘keit
–Für k = Ω(n log n) Datenelement ist
die Anzahl der Elemente, die jeder
Peer zu speichern hat, mit hoher
W‘keit O(k/n)
Algorithmen für Peer-to-PeerNetzw erke
15
Stabilisierung in CHORD
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
 Eintreffen und Entfernen von Knoten
geschieht parallel
 Wenn Knoten sich entfernen, kommt
es zu keinen Benachrichtigungen der
Nachbarn
–Knoten müssen ihre Nachbarn
regelmäßig auf Abwesenheit testen
–Entfernen sich zwei Knoten
gleichzeitig, kann ein Ring in zwei
parallel zerfallen mit Inkonsistenzen
 Gleichzeitiges Einfügen von Knoten
kann zu Artefakten führen
–Das sind Inkonsistenzen in der
Datenstruktur
 Lösung durch speziellen
Stabilisierungsoperation
–(wird hier nicht vorgestellt)
Algorithmen für Peer-to-PeerNetzw erke
16
HEINZ NIXDORF INS TITUT
Kapitel III
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Skalierbare
P2P-Netzwerke
Koorde
von Kaashoek und Karger
Algorithmen für Peer-to-PeerNetzw erke
17
Erreichbarer Durchmesser bei Grad logn
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
CHORD:
– Grad O(log n)
– Durchmesser O(log n)
Kann mit Grad g=O(log n) ein kleinerer Durchmesser d erreicht werden?
– In Abstand 1 sind g Knoten
– In Abstand 2 sind höchstens g2 Knoten
– ...
– In Abstand d sind höchstens gd Knoten
D.h.
Daraus folgt:
Also höchstens geringe Verbesserung des Durchmessers möglich
Algorithmen für Peer-to-PeerNetzw erke
18
Gibt es P2P-Netzwerke mit Grad 2 und
Durchmesser log n
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
CHORD:
– Grad O(log n)
– Durchmesser O(log n)
Kann mit Grad g=2 der Durchmesser O(log n) erreicht werden?
Ja!
– z.B. Binärbaum, Butterfly, DeBrujin-Graph, ...
Was sind eigentlich DeBrujin-Graphen?
Algorithmen für Peer-to-PeerNetzw erke
19
Shuffle, Exchange, Shuffle-Exchange
Betrachte Binärstring S der Länge m
–Shuffle-Operation:
• shuffle(s1, s2, s3,..., sm) =
(s2,s3,..., sm,s1)
–Exchange:
• exchange(s1, s2, s3,..., sm) =
(s1, s2, s3,..., ¬sm)
–Shuffle-Exchange:
• SE(S) = exchange(shuffle(S))
= (s2,s3,..., sm, ¬ s1 )
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Shuffle
Exchange
Beobachtung:
Jeder String A lässt sich in einem
beliebigen String B durch m-faches
Anwenden von Shuffle und ShuffleExchange-Operationen umwandeln
Shuffle-Exchange
Algorithmen für Peer-to-PeerNetzw erke
20
Abrakadabra
Beobachtung:
Jeder String A lässt sich in einem
beliebigen String B durch m-faches
Anwenden von Shuffle und ShuffleExchange-Operationen umwandeln
Beispiel:
Aus
0 1 1 1 0 1 1 mach
1 0 0 1 1 1 1
durch
SE SE SE S SE S S
Operationen
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
SE
SE
SE
S
SE
S
S
Algorithmen für Peer-to-PeerNetzw erke
21
Der DeBrujin-Graph
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
 Ein DeBrujin-Graph besteht aus n=2m
Knoten,
– dargestellt als m-stellige Binärzahlen
 Jeder Knoten hat zwei ausgehende
Kanten
– 1. Kante zeigt von u auf shuffle(u)
– 2. Kante zeigt von u auf SE(u)
Lemma
– Der DeBrujin-Graph hat Grad 2 und
Durchmesser log n
 Koorde = Ring + DeBrujin-Graph
Algorithmen für Peer-to-PeerNetzw erke
22
Koorde = Ring + DeBrujin-Graph
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
 Betrachte Ring aus 2m Knoten und DeBrujin-Kanten
Algorithmen für Peer-to-PeerNetzw erke
23
Koorde = Ring + DeBrujin-Graph
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
 Betrachte Ring aus 2m Knoten und
DeBrujin-Kanten
 Beachte:
– shuffle(s1, s2,..., sm) = (s2,..., sm,s1)
• d.h.:
– shuffle (x) = (x mod 2) + (2x mod 2m )
– SE(S) = (s2,s3,..., sm, ¬ s1 )
• d.h.
– SE(x) = (1-x mod 2) + (2x mod 2m )
 Daraus folgt:
– Die Nachfolger von x sind
• 2x mod 2m und
• 2x+1 mod 2m und
Algorithmen für Peer-to-PeerNetzw erke
24
Virtuelle DeBrujin-Knoten
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
 Um Kollisionen zu vermeiden muss
für n Peers m wie folgt gewählt
werden
m > (1+c) log (n)
 Dann ist die Wahrscheinlichkeit, dass
zwei Peers den gleichen Knoten
erhalten höchstens n-c
 Dann gibt es aber wesentlich mehr
Peers als DeBrujin-Knoten
 Lösung:
– Jeder Peer verwaltet alle DeBrujinKnoten bis zu seinem Nachfolger
auf dem Ring
– Nur bezüglich eingehender Kanten
– Ausgehende Kanten werden nur
vom Peer betrachtet
Algorithmen für Peer-to-PeerNetzw erke
25
Eigenschaften von Koorde
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Theorem
– Jeder Knoten hat vier Zeiger
– Auf jedem Knoten zeigen mit hoher W‘keit höchstens O(log n) Zeiger
– Der Durchmesser ist mit hoher W‘keit O(log n)
– Suche kann mit hoher W‘keit mit O(log n) Nachrichten durchgeführt werden.
Aber:
– Keine Stabilisierungstrategie bekannt
– Zusammenhang des Koorde-Graphen ist sehr klein
Algorithmen für Peer-to-PeerNetzw erke
26
Eigenschaften von Koorde
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
 Theorem
1. Jeder Knoten hat vier Zeiger
2. Auf jedem Knoten zeigen mit hoher
W‘keit höchstens O(log n) Zeiger
 Beweis:
1. folgt aus Definition DeBrujin-Graph
und daher, dass Koorde keine Zeiger
der virtuellen Knoten im Peer
berücksichtigt
2.
– Der Abstand zum nächsten Peer
ist höchstens c (log n)/2m mit
hoher W‘keit
– Die Strecke von der Peers auf
diese virtuellen Knoten zeigen
können ist daher höchstens c (log
n)/2m lang
– Darin befinden sich mit hoher
Wahrscheinlichkeit höchstens
O(log n) Peers
Algorithmen für Peer-to-PeerNetzw erke
27
Eigenschaften von Koorde
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Theorem
– Der Durchmesser ist mit hoher W‘keit O(log n)
Beweisidee:
– Starte mit Pfad der Länge m mit Hilfe der virtuellen DeBrujin-Knoten
– Suche verantwortliche Peers und deren Nachbarn und bette Pfad
entsprechend ein
– Wodurch kann ein Pfad auf k + 3log n Sprünge verlängert werden?
• Wenn zwischen virtuellen Knoten und Peer insgesamt mindestens k
Peers liegen
• Die erwartete Anzahl ist aber pro Sprung konstant.
• Setze k = c log n und wende Chernoff-Schranke an.
Beweisidee: zu Suche benötigt O(log n) Sprünge
– analog
Algorithmen für Peer-to-PeerNetzw erke
28
Der Grad-k-DeBrujin-Graph
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
 Betrachte nun Alphabet über k
Buchstaben, z.B. k = 3
 Jeder k-DeBrujin-Knoten x habe
Nachfolger
–(kx mod km), (kx +1 mod km), (kx+2
mod km), ... , (kx+k-1 mod km)
 Durchmesser verkürzt sich auf
(log m)/(log k)
 Graphzusammenhang erhöht sich auf k
Algorithmen für Peer-to-PeerNetzw erke
29
k-Koorde
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
 Natürliche Verallgemeinerung von
Koorde
 Verbesserung der Suche auf
O((log n)/(log k))
 Aber Stabilisierungsalgorithmus nicht
bekannt
Algorithmen für Peer-to-PeerNetzw erke
30
HEINZ NIXDORF INS TITUT
Universität Paderborn
Algorithmen und Komplexität
Vielen Dank
Ende der 6. Vorlesung
Nächste Vorlesung:
Fr. 05.06.2004
Nächste Übung:
6. Übung Mo. 08.06.2004
9-11 Uhr
10,12,16 Uhr (A,B,C)
Heinz Nixdorf Institut
& Institut für Informatik
Universität Paderborn
Fürstenallee 11
33102 Paderborn
Tel.:
0 52 51/60 66 92
Fax: 0 52 51/62 64 82
E-Mail: [email protected]
http://www.upb.de/cs/schindel.html
31
Herunterladen