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 minbV (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