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