340 likes | 484 Views
Seminar: Information Management in the Web. Vortrag:. Distributed Hash Tables (DHTs) and Plaxton-Type Routing. Vortragende: Désirée Zillmann Betreuer: Dr. Artur Andrzejak, ZIB Vortragsdatum: 08.05.2003. Inhaltsverzeichnis. 1. Distributed Hash Tables 2. Plaxton 3. Pastry
E N D
Seminar: Information Management in the Web Vortrag: Distributed Hash Tables (DHTs) and Plaxton-Type Routing Vortragende: Désirée Zillmann Betreuer: Dr. Artur Andrzejak, ZIB Vortragsdatum: 08.05.2003
Inhaltsverzeichnis • 1. Distributed Hash Tables • 2. Plaxton • 3. Pastry • 4. Tapestry • 5. Übersicht • Literatur Désirée Zillmann: DHTs and Plaxton-Type Routing
Distributed Hash Tables • Dateien sind über einen eindeutigen Hash-Schlüssel (key) erreichbar • Knoten bekommen auch einen Schlüssel (z.B. IP-Adresse) aus demselben Namensraum • Die Hash-Funktionen sind jedem Teilnehmer bekannt • Jeder Knoten ist root-Knoten für mehrere Dateien • Jeder Knoten hält eine Tabelle mit (key, Id)- Paaren, wobei Id auf den Knoten zeigt, der die Datei zur Verfügung stellt • Anfragen werden an einen Knoten weitergeleitet, dessen KnotenId dem Schlüssel des Objekts “am nächsten” ist im Gegensatz zu Napster und Gnutella • Suche nach Schlüsselworten • setzen voraus, dass Dateien in erster Linie auf dem Knoten des Publishers gespeichert sind Désirée Zillmann: DHTs and Plaxton-Type Routing
Unterschiede bei DHT-Systemen • Aufbau des Overlay-Netzwerks • Aufrechterhaltung des Netzwerks • Suchalgorithmus lookup(key) • Wichtig: Man kann die lookup-Anfrage an einen beliebigen Knoten schicken, und diese wird an den root-Knoten korrekt weitergeleitet. DHT-Systeme: • Plaxton • Pastry • Tapestry Désirée Zillmann: DHTs and Plaxton-Type Routing
P2P Overlay-Netzwerk P2P-Layer IP-Layer Désirée Zillmann: DHTs and Plaxton-Type Routing
Plaxton Jeder Knoten ist • Server für die bei ihm gespeicherten Objekte • Router, der Nachrichten weiterleitet • Client, von dem Suchanfragen ausgehen Besonderheiten: • Von jedem Objekt gibt es ggf. mehrere Kopien Désirée Zillmann: DHTs and Plaxton-Type Routing
Routing zu dem Knoten mit Schlüssel 5AC84B *****B ****4B ***84B **C84B *AC84B 5AC84B • Bei jedem Schritt wird von rechts nach links eine Stelle des Schlüssels angepasst. *: zufällige Werte Désirée Zillmann: DHTs and Plaxton-Type Routing
Neighbor table Für Knoten 1032 (b=4): b n -- Stellen, die direkt mit dem lokalen Knoten-Schlüssel übereinstimmen. Bei der Suche kann gleich in die nächste Zeile gesprungen werden. b: Basis des Schlüssels n: Anzahl der Stellen der Schlüssel Désirée Zillmann: DHTs and Plaxton-Type Routing
Beispiel: Routing-Schritt Knoten 1032 erhält eine Nachricht für den Knoten 1232 An welchen Knoten wird die Nachricht weitergeleitet? 1032 <-> 1232 => 0232 Désirée Zillmann: DHTs and Plaxton-Type Routing
Pointer list Ein Zeiger ist ein Tripel (Aid, y, c(x,y) ) aus • dem ID Aid des Objekt • dem Knoten y, welcher eine Kopie des Objektes besitzt • der „Entfernung“ c(x,y) von x nach y (=Kosten für das Senden einer Ein-Wort-Nachricht von x nach y) Désirée Zillmann: DHTs and Plaxton-Type Routing
Wichtige Prozeduren bei Plaxton • Suchen nach einem Objekt • Einfügen eines Objekts • Löschen eines Objekts Désirée Zillmann: DHTs and Plaxton-Type Routing
Suchen nach einem Objekt (Plaxton) root Knoten 197E sucht Objekt 4378 • routed in Richtung root • jeder Knotenüberprüft auf Zeiger auf genügend nahe Kopien des Objekts Désirée Zillmann: DHTs and Plaxton-Type Routing
Einfügen eines Objekts (Plaxton) root Einfügen des Objekts 4378 durch Knoten 39AA (Server) • sendet Wunsch an root • hinterlässt einen Zeiger zu sich bei jedem Schritt (falls neue Kopie näher) Désirée Zillmann: DHTs and Plaxton-Type Routing
Zu guter Letzt (1) • Fehlerbehandlung • Verbindungs- oder Knotenfehler: • ausweichen auf die secondary neighbors • zur Not zurückgreifen auf einen Knoten aus einer niedrigeren Ebene • Ausfall des root-Knotens: • ein echtes Problem, da ohne ihn ein Routing zu einem existierenden Objekt nicht sichergestellt ist Désirée Zillmann: DHTs and Plaxton-Type Routing
Zu guter Letzt (2) • Lokalität • Ausgangsvoraussetzung: • der erste Kontakt zum Netzwerk über e. Knoten in der Nähe • Ausnutzen der Entfernungsfunktion c • Plaxton erreicht eine hohe Wahrscheinlichkeit, dass eine nahe Kopie des Objekts gefunden wird (falls diese existiert). Désirée Zillmann: DHTs and Plaxton-Type Routing
Zusammenfassung Plaxton + Die pointer list ist eindeutig + Versucht, die möglichst nahe Kopie eines Objektes zu finden + ortsunabhängiges Routing (jeder root ist die Wurzel eines spannenden Baumes im Graphen, der die Topologie des Netzwerks beschreibt) - Statische Menge von teilnehmenden Knoten - Viel Vorarbeit, um die Knotenmenge für den Routing-Prozess zu erzeugen - Plaxton geht von gefüllten neighbor tables aus - Fällt ein root-Knoten aus, dann können einige Objekte nicht mehr erreichbar sein Désirée Zillmann: DHTs and Plaxton-Type Routing
Pastry • ähnlich aufgebautes Overlay-Netzwerk wie Plaxton • selbst-organisierend • fehlertolerant Désirée Zillmann: DHTs and Plaxton-Type Routing
Pseudo-Code Pastry Routing-Prozedur (1) (1) if( ){ (2) // D is within range of our leaf set (3) forward to , s.th. is minimal; (4) } else { (5) // use the routing table (6) Let ; (7) if ( ) { (8) forward to ; (9) } Rli: Eintrag in der routing table, i-te Spalte, l-te Zeile Li: i-te nächste KnotenId Désirée Zillmann: DHTs and Plaxton-Type Routing
Pseudo-Code Pastry Routing-Prozedur (2) (10) else { (11) // rare case (12) forward to , s.th. (13) (14) (14) } (16) } Dl : der Wert der l Zeichen im Schlüssel D shl(A,B): Anzahl d. Zeichen des gemeinsamen Präfixes von A u. B Désirée Zillmann: DHTs and Plaxton-Type Routing
Beispiel (Pastry) (1) KnotenId 1023 (b=4): routing table -- Stellen, die direkt mit dem lokalen Knoten-Schlüssel übereinstimmen. (es kann auch leere Einträge geben) Désirée Zillmann: DHTs and Plaxton-Type Routing
Beispiel (Pastry) (2) KnotenId 1023 (b=4): leaf set neighborhood set Die zugehörigen IP-Adressen sind hier nicht mit angegeben. Désirée Zillmann: DHTs and Plaxton-Type Routing
Selbstorganisation bei Pastry • Einfügen eines Knotens • Löschen eines Knotens Désirée Zillmann: DHTs and Plaxton-Type Routing
Zu guter Letzt (1) • Fehlerbehandlung • Ausfall eines Knotens: • Selbstreparatur • Knoten, die eine Nachricht nicht korrekt weiterleiten: • Pastry ist hier anfällig • Abhilfe: mehrmaliges Senden der Nachricht durch client, bis evtl. eine andere Route gefunden • Abhilfe: Erweitern der Selbstorganisation • IP routing Anomalien im Internet: • eine Herausforderung, wenngleich Pastry hier relativ tolerant Désirée Zillmann: DHTs and Plaxton-Type Routing
Zu guter Letzt (2) • Lokalität • ein Knoten sendet eine Nachricht an den (nicht ausgefallenen) Knoten mit einer KnotenID, die dem Schlüssel numerisch am nächsten liegt • alle Einträge der routing table verweisen auf einen nahen Knoten mit geeignetem Präfix Désirée Zillmann: DHTs and Plaxton-Type Routing
Zusammenfassung Pastry • vollständig dezentralisiert • effizient, gut skalierbar • selbstorganisierend • fehlertolerant • anpassungsfähig an Knoten-Fehler • zuverlässig im Senden einer Nachricht an den live Knoten mit einer KnotenID, die dem Schlüssel numerisch am nächsten liegt • gute Lokalität Désirée Zillmann: DHTs and Plaxton-Type Routing
Tapestry • beruht im Wesentlichen auf dem Plaxton-Algorithmus • Zuordnung mehrerer root-Knoten für ein Objekt • Frage nach nahegelegenstem Nachbar bei ähnlichen Kosten • neues Konzept zur Integration neuer Knoten • Verschieben eines Objekts zwischen zwei Knoten Désirée Zillmann: DHTs and Plaxton-Type Routing
Tapestry Routing Mesh Jeder Knoten hat neighbor-Links zu anderen Knoten. Li: Eintrag in der Zeile i der neighbor table Désirée Zillmann: DHTs and Plaxton-Type Routing
Selbstorganisation bei Tapestry (1) • Erzeugung von Ersatz-root-Knoten • Problem: das Netzwerk ist nicht konstant • Ziel: ein Objekt bleibt erreichbar, auch wenn ein root-Knoten ausgefallen ist • Idee: „Löcher“ umrunden, indem man zu dem nächsten Eintrag in derselben Zeile der neighbor table routed • gibt es nur noch einen Eintrag in der Zeile (den aktuellen Knoten), dann ist dieser Knoten der root-Knoten. Désirée Zillmann: DHTs and Plaxton-Type Routing
Selbstorganisation bei Tapestry (2) • Integration mehrerer neuer Knoten gleichzeitig • Problem: x hat ein Loch, wo y hingehört • Lösung: • jeder neue Knoten versendet eine “wish list” (Bit-Vektor der Länge b) von nichterreichbaren Präfixen • jeder Rezipient überprüft, ob er einen der gewünschten Knoten erreichen kann, ggf. sendet er den multicast zurück, Präfix und Löcher können angepasst werden Désirée Zillmann: DHTs and Plaxton-Type Routing
Zusammenfassung Tapestry • Fokussierung auf proximity • findet tatsächlich die ungefähr nächste Kopie eines Objekts und den nahegelegensten Nachbarn • Nachteil: gestiegene Komplexität • Die Frage, welche Bedeutung proximity in einem P2P-System haben sollte, bleibt offen • ermöglicht simultanes Einfügen von Knoten • Berücksichtigung eines weitreichenden Netzwerks • Anpassungsfähigkeit an eine sich verändernde Menge von Knoten Désirée Zillmann: DHTs and Plaxton-Type Routing
Übersicht b: Basis des Schlüssels N: Anzahl der Schlüssel Désirée Zillmann: DHTs and Plaxton-Type Routing
Fazit Es gibt noch viele offene Fragen in P2P-Systemen. Désirée Zillmann: DHTs and Plaxton-Type Routing
Literatur(1) [1] H. Balakrishnan et al.: Looking Up Data in P2P Systems, Communications of the ACM, February 2003/Vo. 46, No. 2 [2] Kirsten Hildrum, John D. Kubiatowicz, Satish Rao, Ben Y. Zhao: Distributed Data Location in a Dynamic Network, Proc. of ACM SPAA, 2002) [3] C. Greg Plaxton, Rajmohan Rajaraman, Andrea W. Richa: Accessing Nearby Copies of Replicated Objects in a Distributed Environment, ACM Symposium on Parallel Algorithms and Architectures 1997 [4] Antony Rowstron, Peter Druschel: Pastry: Scalable, distributed object location and routing for large-scale peer-to-peer systems, Middleware, 2001 Désirée Zillmann: DHTs and Plaxton-Type Routing
Literatur(2) [5] Julian Bart: Routing in Peer-to-Peer Systemen. Universität Stuttgart. Hauptseminar: Internettechnologien der nächsten Generation. Januar 2003 http://www.informatik.uni-stuttgart.de/ipvr/vs/de/teaching/ ws0203/seminars/NGI/folien/Routing_P2P-Folien.pdf [6] Marko Tomljenovic: Vergleich von Routing-Algorithmen in “Peer to Peer” – und “Mobile Ad Hoc” - Netzwerken. Universität Stuttgart. Hauptseminar: Internettechnologien der nächsten Generation. Januar 2003 http://www.informatik.uni-stuttgart.de/ipvr/vs/de/teaching/ ws0203/seminars/NGI/folien/Vergleich_P2P_Ad-Hoc-Routing.pdf Désirée Zillmann: DHTs and Plaxton-Type Routing