1 heinz nixdorf institut universität paderborn algorithmen und komplexität algorithmen für...
TRANSCRIPT
1
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und Komplexität
Algorithmen für Peer-to-Peer-Netzwerke
Sommersemester 200428.05.2004
6. Vorlesung
Christian Schindelhauer
Algorithmen für Peer-to-Peer-Netzwerke 2
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Kapitel III
CHORD
Skalierbare Skalierbare P2P-P2P-
NetzwerkeNetzwerke
Algorithmen für Peer-to-Peer-Netzwerke 3
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Chernoff-Schranke
Bernoulli-Experiment
– Entweder 0 mit Wahrscheinlichkeit 1-p
– Oder 1 mit Wahrscheindlichkeit p
Algorithmen für Peer-to-Peer-Netzwerke 4
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Hohe Wahrscheinlichkeit
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
Somit ist: 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-Peer-Netzwerke 5
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Chord als DHT
n: Knotenanzahl, Knotenmenge Vk: Anzahl Schlüssel, Schlüsselmenge
Km: Hashwertlänge: m >> log maxK,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 minbV (rB(b)-rK(i)) mod 2m
Index
rK(i) = 3i-2 mod 80
123
4
5
6
7
rV(b) = b+1 mod 8
2
3
5
2 0
6
Algorithmen für Peer-to-Peer-Netzwerke 6
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Eigenschaften der Datenstruktur
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)– O(log n + w log n) Peers, falls w=O(log n) – O(w) Peers, falls w=Ω(log n)
Algorithmen für Peer-to-Peer-Netzwerke 7
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Balance in Chord
– 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-Peer-Netzwerke 8
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Die Datenstruktur von Chord
Für jeden Knoten b:– successor: Nachfolger– predecessor: Vorgänger– Für i 0,..,m-1
• Finger[i] := Der Knoten derdem Wert rV(b+2i) folgt
Für kleine i werden die Finger-Einträge immer gleich
– Nur unterschiedliche Fingereinträge werden gespeichert
0
123
4
5
6
7
5
2 0
successorpredecessor
finger[0]
finger[1]
finger[2]
Algorithmen für Peer-to-Peer-Netzwerke 9
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Suchen in Chord
Theorem
Die Suche braucht mit hoher W’keit O(log n) SprüngeSuchalgorithmus 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
od
b
s
b.finger[m]
b.finger[m-1]c
x y
Algorithmen für Peer-to-Peer-Netzwerke 10
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
b
s
b.finger[m]
b.finger[m-1]c
x y
Suchen in Chord
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
Algorithmen für Peer-to-Peer-Netzwerke 11
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Fingeranzahl
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)– Damit ist w=O(log2n)
b
b.finger[m]
a.finger[m-1]
x ya
Algorithmen für Peer-to-Peer-Netzwerke 12
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Einfügen von Peers
Theorem O(log2 n) Nachrichten genügen mit hoher W’keit, um Peers in CHORD aufzunehmen
Algorithmen für Peer-to-Peer-Netzwerke 13
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Einfügen von Peers
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-Peer-Netzwerke 14
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Der erwartete Aufwand zum Aufnehmen und Entfernen
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-Peer-Netzwerke 15
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Balancierung durch virtuelle Peers
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-Peer-Netzwerke 16
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Stabilisierung in CHORD
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-Peer-Netzwerke 17
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Kapitel III
Koordevon Kaashoek und Karger
Skalierbare Skalierbare P2P-NetzwerkeP2P-Netzwerke
Algorithmen für Peer-to-Peer-Netzwerke 18
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Erreichbarer Durchmesser bei Grad logn
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 KnotenD.h.
Daraus folgt:
Also höchstens geringe Verbesserung des Durchmessers möglich
Algorithmen für Peer-to-Peer-Netzwerke 19
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Gibt es P2P-Netzwerke mit Grad 2 und Durchmesser log n
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-Peer-Netzwerke 20
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
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 )
Beobachtung:
Jeder String A lässt sich in einem beliebigen String B durch m-faches Anwenden von Shuffle und Shuffle-Exchange-Operationen umwandeln
Shuffle
Exchange
Shuffle-Exchange
Algorithmen für Peer-to-Peer-Netzwerke 21
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Abrakadabra
Beobachtung:
Jeder String A lässt sich in einem beliebigen String B durch m-faches Anwenden von Shuffle und Shuffle-Exchange-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
SE
SE
S
S
S
SE
SE
Algorithmen für Peer-to-Peer-Netzwerke 22
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Der DeBrujin-Graph
Ein DeBrujin-Graph besteht aus n=2m Knoten,
– dargestellt als m-stellige BinärzahlenJeder 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-Peer-Netzwerke 23
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Koorde = Ring + DeBrujin-Graph
Betrachte Ring aus 2m Knoten und DeBrujin-Kanten
Algorithmen für Peer-to-Peer-Netzwerke 24
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Koorde = Ring + DeBrujin-Graph
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-Peer-Netzwerke 25
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Virtuelle DeBrujin-Knoten
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 DeBrujin-
Knoten bis zu seinem Nachfolger auf dem Ring
– Nur bezüglich eingehender Kanten– Ausgehende Kanten werden nur
vom Peer betrachtet
Algorithmen für Peer-to-Peer-Netzwerke 26
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Eigenschaften von Koorde
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-Peer-Netzwerke 27
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Eigenschaften von Koorde
Theorem1. Jeder Knoten hat vier Zeiger2. 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-Peer-Netzwerke 28
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Eigenschaften von Koorde
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-Peer-Netzwerke 29
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Der Grad-k-DeBrujin-Graph
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-Peer-Netzwerke 30
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
k-Koorde
Natürliche Verallgemeinerung von Koorde
Verbesserung der Suche auf O((log n)/(log k))
Aber Stabilisierungsalgorithmus nicht bekannt
31
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und Komplexität
Heinz Nixdorf Institut& Institut für InformatikUniversität PaderbornFürstenallee 1133102 Paderborn
Tel.: 0 52 51/60 66 92Fax: 0 52 51/62 64 82E-Mail: [email protected]://www.upb.de/cs/schindel.html
Vielen Dank
Ende der 6. VorlesungNächste Vorlesung: Fr. 05.06.2004 9-11 UhrNächste Übung: 6. Übung Mo. 08.06.2004 10,12,16 Uhr (A,B,C)