PPT - Institut für Informatik

Werbung
HEINZ NIXDORF INSTITUT
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 INSTITUT
Kapitel III
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Skalierbare
P2PNetzwerke
CHORD
Algorithmen für Peer-to-PeerNetzwerke
2
HEINZ NIXDORF INSTITUT
Chernoff-Schranke
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-PeerNetzwerke
3
HEINZ NIXDORF INSTITUT
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:
P[A(i)] ≤ n-c
P[ A(1) oder  A(2) oder ...  A(n) ] ≤ n  n-c
Somit ist:
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-PeerNetzwerke
4
HEINZ NIXDORF INSTITUT
Chord als DHT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
rV(b) = b+1 mod 8
n: Knotenanzahl, Knotenmenge V
k: Anzahl Schlüssel, Schlüsselmenge
K
5
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)
–
fV(i) := arg minbV (rB(b)-rK(i)) mod
2m
6
5
7
3
rK(i) = 3i-2 mod 8
4
Index
2
2
3
0
6
2
1
0
Algorithmen für Peer-to-PeerNetzwerke
5
HEINZ NIXDORF INSTITUT
Eigenschaften der Datenstruktur
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-PeerNetzwerke
6
HEINZ NIXDORF INSTITUT
Balance in Chord
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-PeerNetzwerke
7
HEINZ NIXDORF INSTITUT
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
predecessor
successor
5
6
finger[0]
5
7
finger[1]
0
finger[2]
4
2
3
2
1
0
Algorithmen für Peer-to-PeerNetzwerke
8
HEINZ NIXDORF INSTITUT
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.finger[m-1]
b
c
x
sy
Algorithmen für Peer-to-PeerNetzwerke
9
HEINZ NIXDORF INSTITUT
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.finger[m-1]
b
c
x
sy
Algorithmen für Peer-to-PeerNetzwerke
10
HEINZ NIXDORF INSTITUT
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-PeerNetzwerke
11
HEINZ NIXDORF INSTITUT
Einfügen von Peers
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-PeerNetzwerke
12
HEINZ NIXDORF INSTITUT
Einfügen von Peers
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-PeerNetzwerke
13
HEINZ NIXDORF INSTITUT
Der erwartete Aufwand zum Aufnehmen und
Entfernen
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-PeerNetzwerke
14
HEINZ NIXDORF INSTITUT
Balancierung durch virtuelle Peers
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-PeerNetzwerke
15
HEINZ NIXDORF INSTITUT
Stabilisierung in CHORD
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-PeerNetzwerke
16
HEINZ NIXDORF INSTITUT
Kapitel III
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Skalierbare
P2P-Netzwerke
Koorde
von Kaashoek und Karger
Algorithmen für Peer-to-PeerNetzwerke
17
HEINZ NIXDORF INSTITUT
Erreichbarer Durchmesser bei Grad logn
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-PeerNetzwerke
18
Gibt es P2P-Netzwerke mit Grad 2 und
Durchmesser log n
HEINZ NIXDORF INSTITUT
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-PeerNetzwerke
19
HEINZ NIXDORF INSTITUT
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 )
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-PeerNetzwerke
20
HEINZ NIXDORF INSTITUT
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
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
SE
SE
SE
S
SE
S
S
Algorithmen für Peer-to-PeerNetzwerke
21
HEINZ NIXDORF INSTITUT
Der DeBrujin-Graph
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-PeerNetzwerke
22
HEINZ NIXDORF INSTITUT
Koorde = Ring + DeBrujin-Graph
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
 Betrachte Ring aus 2m Knoten und DeBrujin-Kanten
Algorithmen für Peer-to-PeerNetzwerke
23
HEINZ NIXDORF INSTITUT
Koorde = Ring + DeBrujin-Graph
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-PeerNetzwerke
24
HEINZ NIXDORF INSTITUT
Virtuelle DeBrujin-Knoten
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-PeerNetzwerke
25
HEINZ NIXDORF INSTITUT
Eigenschaften von Koorde
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-PeerNetzwerke
26
HEINZ NIXDORF INSTITUT
Eigenschaften von Koorde
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-PeerNetzwerke
27
HEINZ NIXDORF INSTITUT
Eigenschaften von Koorde
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-PeerNetzwerke
28
HEINZ NIXDORF INSTITUT
Der Grad-k-DeBrujin-Graph
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-PeerNetzwerke
29
HEINZ NIXDORF INSTITUT
k-Koorde
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-PeerNetzwerke
30
HEINZ NIXDORF INSTITUT
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