HEINZ NIXDORF INS TITUT Universität Paderborn Algorithmen und Komplexität Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 17.05.2004 4. Vorlesung Christian Schindelhauer 1 Kapitel I HEINZ NIXDORF INS TITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Algorithmen für Peer-to-PeerNetzw erke 2 HEINZ NIXDORF INS TITUT Terminänderungen Vorlesung: – Nächste Vorlesung: Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Fr. 21.05.2004, 9-11 Uhr F0.530 Übung – Übungsblätter erscheinen seit letzter Woche immer montags Nächste Übungen: – Gruppe A: Mo 10-11 (Christian Schindelhauer), nächste Termine: • Mo. 24.05.2004, 10 Uhr – Gruppe B: Mo 11-12 (Peter Mahlmann), nächste Termine • Mo. 24.05.2004, 11 Uhr – Gruppe C: Mo 16-17 (Peter Mahlmann), nächste Termine • Mo. 24.05.2004, 16 Uhr Algorithmen für Peer-to-PeerNetzw erke 3 HEINZ NIXDORF INS TITUT Kapitel III Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer CHORD Algorithmen für Peer-to-PeerNetzw erke 4 Von der Hash-Tabelle zur Distributed HashTable (DHT) Hash-Tabellen Vorteile • Suche einfach Nachteile – Ein neuer Peer verursacht neue Wahl der Hash-Funktion – Lange Wege HEINZ NIXDORF INS TITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Peers 0 1 23 f(23)=1 2 0 3 4 5 1 5 Indexdaten 6 4 f(1)=4 Indexdaten Distributed Hash-Table Peers werden an eine Stelle ge“hash“t und erhalten Bereiche des Wertebereichs der Hashfunktion zugeteilt Daten werden auch ge“hash“t – Je nach Bereich den Peers zugeordnet Hash-Funktion Hash-Funktion Peers Algorithmen für Peer-to-PeerNetzw erke 5 Einfügen in die Distributed Hash-Table (DHT) HEINZ NIXDORF INS TITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Distributed Hash-Table – Peers werden an eine Stelle ge“hash“t – Dokumente ebenso – Jeder ist für einen Bereich verantwortlich Kommt ein neuer Knoten hinzu – müssen die Nachbarn teilen Verlässt ein Knoten das Netzwerk – übernehmen die Nachbarn sein Gebiet Algorithmen für Peer-to-PeerNetzw erke 6 HEINZ NIXDORF INS TITUT Eigenschaften DHT Vorteile – Jedes Datum kann einem bestimmten Peer zugewiesen werden – Einfügen und Entfernen von Peers erzeugt nur Veränderungen in den benachbarten Peers Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Peers 0 1 23 f(23)=1 2 0 3 4 5 1 5 Indexdaten 6 4 f(1)=4 DHTs werden von vielen P2PNetzwerken benutzt Noch zu klären: – Die Verbindungsstruktur Algorithmen für Peer-to-PeerNetzw erke 7 HEINZ NIXDORF INS TITUT Peer-to-peer Netzwerke Peer-to-peer Netzwerke sind verteilte Systeme – ohne zentrale Kontrolle oder hierarchische Strukturen – mit gleicher Software – mit großer Dynamik, d.h. Knoten erscheinen und verschwinden – mit vielen Knoten – mit geringer Netzwerkinformation Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Knoten erscheint Internet Knoten verschwindet Algorithmen für Peer-to-PeerNetzw erke 8 Chord HEINZ NIXDORF INS TITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer von Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek und Hari Balakrishnan (2001) DHT mit Hash-Bildbereich {0,..,2m-1} – für genügend großes m Ring-Verknüpfung der Peers Abkürzungen im Ring durch exponentiell gestaffelte Zeiger auf Nachfolger Algorithmen für Peer-to-PeerNetzw erke 9 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) – fV(i) := arg minb∈V (rB(b)-rK(i)) 5 7 3 rK( i) = 3i-2 mod 8 4 2 2 6 Index 3 0 2 1 0 Algorithmen für Peer-to-PeerNetzw erke 10 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 Lemma Die Anzahl unterschiedlicher FingerEinträge für Knoten b ist mit hoher Wahrscheinlichkeit O(log n) Hohe Wahrscheinlichkeit = 1 - n-c 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-PeerNetzw erke 11 HEINZ NIXDORF INS TITUT Suchen in Chord Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Theorem Die Schlüsselsuche braucht mit hoher Wahrscheinlichkeit O(log n) Sprünge, d.h. insbesondere nur O(log n) Nachrichten für Schlüsseleinfügen/löschen mit hoher Wahrscheinlichkeit Suchalgorithmus für Schlüssel s: – Abbruch(b,s): • Knoten b,b’=b.succ gefunden, mit rK(s) ∈ [rV(b),rV(b‘)| – 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.finger[m] b.finger[m-1] c x sy Algorithmen für Peer-to-PeerNetzw erke 12 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 Die Datenstruktur von Chord hat folgende Eigenschaften 1. Balance&Load: Mit pol. W‘keit (1-n-c) werden in jedem Knoten höchstens O(k/n log n) Schlüssel gespeichert 2. Dynamik: Tritt ein neuer Knoten hinzu oder verlässt ein Knoten das Netzwerk müssen mit pol. W‘keit höchstens O(k/n log n) Schlüssel bewegt werden. Beweis – … Algorithmen für Peer-to-PeerNetzw erke 13 Eigenschaften der Datenstruktur HEINZ NIXDORF INS TITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Lemma Der Abstand |rV(b.succ) - rV(b)| ist 1. im Erwartungswert 2m/n, 2. mit hoher Wahrscheinlichkeit höchstens O((2m/n) log n) und 3. mit hoher Wahrscheinlichkeit mindestens (2m/n)/ nc für eine Konstante c>0 4. In einem Intervall der Länge w 2m/n sind mit hoher Wahrscheinlichkeit a) Θ(w) Knoten, falls w=Ω(log n) b) höchstens O(w log n) Knoten, falls w=O(log n) Lemma Die Anzahl der Knoten, die einen Fingerzeiger auf Knoten b besitzen ist 1. im Erwartungswert O(log n) 2. mit pol. Wahrscheinlichkeit höchstens O(log n) Algorithmen für Peer-to-PeerNetzw erke 14 Beweise? HEINZ NIXDORF INS TITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Wie beweist man diese Eigenschaften Abstrakte Formulierung durch Bälle und Körbe Anwenden der Chernoff-Schranke Algorithmen für Peer-to-PeerNetzw erke 15 HEINZ NIXDORF INS TITUT Bälle und Körbe Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Lemma Werden m Bälle zufällig in n Körbe geworfen. Dann gilt: 1. Die erwartete Zahl von Bällen pro Korb ist m/n. 2. Die Wahrscheinlichkeit, dass k Bälle auf einen bestimmten Korb fallen ist, Lemma Werden m=n Bälle zufällig in n Körbe geworfen. Dann gilt: 1. Die Wahrscheinlichkeit, dass ein (bestimmter) Korb leer bleibt, ist konstant (konvergiert gegen 1/e). Die erwartete Anzahl leerer Körbe konvergiert gegen n/e 2. Die Wahrscheinlichkeit, dass mehr als k ln n Bälle auf einen bestimmten Korb fallen, ist höchstens O(n-c) für konstante k und c. Beweis: 1. aus Übung 2. durch Chernoff-Schranke Algorithmen für Peer-to-PeerNetzw erke 16 Bälle und Körbe HEINZ NIXDORF INS TITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Lemma Werden m= k n log n Bälle zufällig in n Körbe geworfen (für jedes k>0), gilt Folgendes: 1. Für alle c>k ist die Wahrscheinlichkeit, dass mehr als c log n Bälle auf einen Korb fallen ist höchstens O(n-c‘) für ein c‘>0. 2. Für alle c<k ist die Wahrscheinlichkeit, dass in einem Korb weniger als c log n Bälle fallen, ist höchstens O(n-c‘) für ein c‘>0. Beweis: durch Chernoff-Schranke Algorithmen für Peer-to-PeerNetzw erke 17 Exkurs Wahrscheinlichkeitstheorie 1. Der Weg nach Markov HEINZ NIXDORF INS TITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Erwartungswert einer diskreten Zufallsvariable Daraus folgt sofort Algorithmen für Peer-to-PeerNetzw erke 18 Markovs Ungleichung HEINZ NIXDORF INS TITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Daraus folgt Stärkere Abschätzung: Chebyshev wenn die Varianz bekannt ist: Algorithmen für Peer-to-PeerNetzw erke 19 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 20 Beweis der Chernoff-Schranke: 1. Teil HEINZ NIXDORF INS TITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Für t>0: Wir wählen t und k wie folgt: Algorithmen für Peer-to-PeerNetzw erke 21 Beweis der Chernoff-Schranke 1. Teil Einfach einsetzen... HEINZ NIXDORF INS TITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Nun ist Daraus folgt Algorithmen für Peer-to-PeerNetzw erke 22 Beweis der Chernoff-Schranke 1. Teil Was ist (1+c) ln (1+c) - Nachtrag HEINZ NIXDORF INS TITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Nun ist Daraus folgt Nun erhält man für (1+c) ln(1+c) Nun setzt man für ein (1+c) ln(1+c) und erhält for c∈(0,1): Algorithmen für Peer-to-PeerNetzw erke 23 Chernoff-Schranke 2.Teil HEINZ NIXDORF INS TITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Algorithmen für Peer-to-PeerNetzw erke 24 Beweis der Chernoff-Schranke: 2. Teil HEINZ NIXDORF INS TITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Für t<0: Wir wählen t und k wie folgt: Algorithmen für Peer-to-PeerNetzw erke 25 Beweis der Chernoff-Schranke 2. Teil Einfach einsetzen... HEINZ NIXDORF INS TITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Nun ist Daraus folgt Algorithmen für Peer-to-PeerNetzw erke 26 Beweis der Chernoff-Schranke 2. Teil Was ist (1-c) ln (1-c) - Nachtrag Warum ist HEINZ NIXDORF INS TITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer ? Für c=0 sind beide Seiten gleich. Die Ableitung der linken Seite ist ln(1-c); die der rechten ist -c Nun ist Daraus folgt und insbesonder die gewünschte Ungleichung. Algorithmen für Peer-to-PeerNetzw erke 27 HEINZ NIXDORF INS TITUT Universität Paderborn Algorithmen und Komplexität Vielen Dank Ende der 4. Vorlesung Nächste Vorlesung: Fr. 21.05.2004 Nächste Übung: 5. Übung Mo. 24.05.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 28