Distributed Hash Tables

Werbung
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
08.05.2003
Désirée Zillmann: DHTs and Plaxton-Type Routing
2
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
08.05.2003
Désirée Zillmann: DHTs and Plaxton-Type Routing
3
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
08.05.2003
Désirée Zillmann: DHTs and Plaxton-Type Routing
4
P2P Overlay-Netzwerk
P2P-Layer
IP-Layer
08.05.2003
Désirée Zillmann: DHTs and Plaxton-Type Routing
5
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
08.05.2003
Désirée Zillmann: DHTs and Plaxton-Type Routing
6
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
08.05.2003
Désirée Zillmann: DHTs and Plaxton-Type Routing
7
Neighbor table
Für Knoten 1032 (b=4):
b
1. Stelle
n
2. Stelle
3. Stelle
4. Stelle
1200
2302
-0032
3201
0112
3132
--
-1022
0232
2032
0023
-1332
3032
-- 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
08.05.2003
Désirée Zillmann: DHTs and Plaxton-Type Routing
8
Beispiel: Routing-Schritt
Knoten 1032 erhält eine Nachricht für den Knoten
1232
An welchen Knoten wird die Nachricht
weitergeleitet?
1. Stelle
2. Stelle
3. Stelle
4. Stelle
1200
2302
-0032
3201
0112
3132
--
-1022
0232
2032
0023
-1332
3032
1032 <-> 1232 => 0232
08.05.2003
Désirée Zillmann: DHTs and Plaxton-Type Routing
9
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)
08.05.2003
Désirée Zillmann: DHTs and Plaxton-Type Routing
10
Wichtige Prozeduren bei Plaxton
 Suchen nach einem Objekt
 Einfügen eines Objekts
 Löschen eines Objekts
08.05.2003
Désirée Zillmann: DHTs and Plaxton-Type Routing
11
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
08.05.2003
Désirée Zillmann: DHTs and Plaxton-Type Routing
12
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)
08.05.2003
Désirée Zillmann: DHTs and Plaxton-Type Routing
13
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
08.05.2003
Désirée Zillmann: DHTs and Plaxton-Type Routing
14
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).
08.05.2003
Désirée Zillmann: DHTs and Plaxton-Type Routing
15
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
08.05.2003
Désirée Zillmann: DHTs and Plaxton-Type Routing
16
Pastry
 ähnlich aufgebautes Overlay-Netzwerk wie
Plaxton
 selbst-organisierend
 fehlertolerant
08.05.2003
Désirée Zillmann: DHTs and Plaxton-Type Routing
17
Pseudo-Code Pastry Routing-Prozedur (1)
(1) if( L  L / 2   D  L L / 2  ){
(2)
// D is within range of our leaf set
(4)
forward to Li , s.th. D  Li
} else {
(5)
// use the routing table
(3)
(6)
(7)
Let l  shl ( D, A)
if ( Rl
(8)
(9)
Dl
is minimal;
;
 null ) {
forward to Rl
Dl
;
}
Rli: Eintrag in der routing table, i-te Spalte, l-te Zeile
Li : i-te nächste KnotenId
08.05.2003
Désirée Zillmann: DHTs and Plaxton-Type Routing
18
Pseudo-Code Pastry Routing-Prozedur (2)
(10)
else {
(11)
// rare case
(12)
forward to T  L  R  M , s.th.
shl (T , D)  l
(13)
T  D  A D
(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
08.05.2003
Désirée Zillmann: DHTs and Plaxton-Type Routing
19
Beispiel (Pastry)
(1)
KnotenId 1023 (b=4):
routing table
1. Stelle
2. Stelle
3. Stelle
4. Stelle
0221
-1003
1020
-1130
1013
2230
1223
-1022
3120
1302
1032
--
-- Stellen, die direkt mit dem lokalen Knoten-Schlüssel
übereinstimmen.
(es kann auch leere Einträge geben)
08.05.2003
Désirée Zillmann: DHTs and Plaxton-Type Routing
20
Beispiel (Pastry)
(2)
KnotenId 1023 (b=4):
leaf set
kleiner
1019
1001
größer
1021
1014
1025
1030
1031
1029
neighborhood set
1302
0221
1020
2230
1130
3120
3130
3321
Die zugehörigen IP-Adressen sind hier nicht mit angegeben.
08.05.2003
Désirée Zillmann: DHTs and Plaxton-Type Routing
21
Selbstorganisation bei Pastry
 Einfügen eines Knotens
 Löschen eines Knotens
08.05.2003
Désirée Zillmann: DHTs and Plaxton-Type Routing
22
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
08.05.2003
Désirée Zillmann: DHTs and Plaxton-Type Routing
23
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
08.05.2003
Désirée Zillmann: DHTs and Plaxton-Type Routing
24
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
08.05.2003
Désirée Zillmann: DHTs and Plaxton-Type Routing
25
Tapestry
 beruht im Wesentlichen auf dem PlaxtonAlgorithmus
 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
08.05.2003
Désirée Zillmann: DHTs and Plaxton-Type Routing
26
Tapestry Routing Mesh
Jeder Knoten hat neighbor-Links zu anderen Knoten.
Li: Eintrag in der Zeile i der neighbor table
08.05.2003
Désirée Zillmann: DHTs and Plaxton-Type Routing
27
Selbstorganisation bei Tapestry
(1)
 Erzeugung von Ersatz-root-Knoten
Problem: das Netzwerk ist nicht konstant
Ziel: ein Objekt bleibt erreichbar, auch wenn ein rootKnoten 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 rootKnoten.
08.05.2003
Désirée Zillmann: DHTs and Plaxton-Type Routing
28
Selbstorganisation bei Tapestry
(2)
 Integration mehrerer neuer Knoten gleichzeitig
Problem: x hat ein Loch, wo y hingehört
Lösung:


08.05.2003
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
29
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 P2PSystem 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
08.05.2003
Désirée Zillmann: DHTs and Plaxton-Type Routing
30
Übersicht
Algorithmus
Modell
Suche
Speicher
Plaxton
neighbor table, log N
b
pointer list
b log b N
Tapestry
neighbor table, log N
b
pointer list
b log b N
Pastry
routing table,
leaf set,
neighborhood
set
b log b N  b
log b N
b: Basis des Schlüssels
N: Anzahl der Schlüssel
08.05.2003
Désirée Zillmann: DHTs and Plaxton-Type Routing
31
Fazit
Es gibt noch viele offene Fragen in
P2P-Systemen.
08.05.2003
Désirée Zillmann: DHTs and Plaxton-Type Routing
32
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
08.05.2003
Désirée Zillmann: DHTs and Plaxton-Type Routing
33
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-HocRouting.pdf
08.05.2003
Désirée Zillmann: DHTs and Plaxton-Type Routing
34
Herunterladen