PPT - Universität Paderborn

Werbung
HEINZ NIXDORF INSTITUT
Universität Paderborn
Algorithmen und Komplexität
Algorithmen für
Peer-to-Peer-Netzwerke
Sommersemester 2004
04.06.2004
7. Vorlesung
Peter Mahlmann
1
HEINZ NIXDORF INSTITUT
Kapitel III
Universität Paderborn
Algorithmen und Komplexität
Peter Mahlmann
Skalierbare
Peer to Peer-Netzwerke
Tapestry
von Zhao, Kubiatowicz und Joseph (2001)
Algorithmen für Peer-to-PeerNetzwerke
2
HEINZ NIXDORF INSTITUT
Tapestry
Universität Paderborn
Algorithmen und Komplexität
Peter Mahlmann
Grundlagen und Routing
Algorithmen für Peer-to-PeerNetzwerke
3
HEINZ NIXDORF INSTITUT
Tapestry
Universität Paderborn
Algorithmen und Komplexität
Peter Mahlmann
Objekte und Peers im Netzwerk werden durch eindeutige Objekt-IDs
(Globally Unique Identifiers GUIDs) bzw. Peer-IDs identifiziert
IDs werden (wie schon bei CAN und CHORD) durch Hashfunktion berechnet
IDs sind Zeichenketten zur Basis b (Im Fall b=16 also Zahlen im
Hexadezimalsystem)
Frage: Was sind die Vor- und Nachteile bei Verwendung von
Hashfunktionen?
Algorithmen für Peer-to-PeerNetzwerke
4
HEINZ NIXDORF INSTITUT
Nachbarschaftsmenge eines Knotens (1)
Universität Paderborn
Algorithmen und Komplexität
Peter Mahlmann
Jeder Knoten A unterhält Links zu anderen Knoten, die einen Prefix x seiner
Peer-ID mit ihm teilen
Peer mit ID B=xoy ist Nachbar mit A, falls xoy´=A für beliebige y, y´
Links sind in Level unterteilt (abhängig von der Länge des gemeinsamen Prefix)
Level L = |x|+1
Algorithmen für Peer-to-PeerNetzwerke
5
HEINZ NIXDORF INSTITUT
Nachbarschaftsmengen eines Knotens (2)
Universität Paderborn
Algorithmen und Komplexität
Peter Mahlmann
Links mit gleichem Prefix werden weiter unterteilt nach dem ersten Buchstaben
j, in dem sie sich unterscheiden
Das Peer mit NodeID A besitzt b|A| Nachbarschaftsmengen
N
A
x, j
, die alle mit xoj beginnenden NodeIDs enthalten
Wobei: A = Peer-ID
x = Prefix von A
j = erste Buchstabe, in dem sich der Nachbar von A unterscheidet
Knoten dieser Mengen werden (x,j) Knoten genannt
Algorithmen für Peer-to-PeerNetzwerke
6
HEINZ NIXDORF INSTITUT
Beispiel einer Nachbarschaftsmenge
Universität Paderborn
Algorithmen und Komplexität
Peter Mahlmann
Nachbarschaftsmengen des Knotens 4221
Level 4
Level 3
Level 2
Level 1
j=0
4220
420?
40??
0???
j=1
4221
421?
41??
1???
4222
422?
42??
2???
4223
423?
43??
3???
4224
424?
44??
4???
4225
425?
45??
5???
.
4226
426?
46??
6???
j=7
4227
427?
47??
7???
.
.
.
.
.
Algorithmen für Peer-to-PeerNetzwerke
7
HEINZ NIXDORF INSTITUT
Nachbarschaftsmengen (3)
Universität Paderborn
Algorithmen und Komplexität
Peter Mahlmann
Es werden jedoch nur k Links in jeder Nachbarschaftsmenge verwaltet:
k  1:
N
A
x, j
k
(sonst vollständiger Graph!)
Nachbarschaftsmengen können (und werden) leer sein!
Algorithmen für Peer-to-PeerNetzwerke
8
HEINZ NIXDORF INSTITUT
Eigenschaften von Nachbarschaftsmengen
Universität Paderborn
Algorithmen und Komplexität
Peter Mahlmann
1. Konsistenz:
Falls N xA, j   für beliebiges A, dann existieren keine (x,j) Peers im Netzwerk.
Wir bezeichnen dies als Loch in der Routing-Tabelle bei Level |x|+1, Buchstabe j.
Hieraus folgt, dass das Netzwerk zusammenhängend ist
Routing kann geschehen, indem Schritt für Schritt ein Buchstabe des Startknotens A
dem Zielknoten B mit NodeID b1ob2o…obn angepasst wird
So werden sukzessive Knoten der folgenden Mengen gewählt:
A
 ,b1
(1. Hop, zu Knoten A1)
N
A1
b1 ,b2
(2. Hop, zu Knoten A2)
N
A2
b1ob2 ,b3
(3. Hop, zu Knoten A3)
N
…
Algorithmen für Peer-to-PeerNetzwerke
9
HEINZ NIXDORF INSTITUT
Eigenschaften von Nachbarschaftsmengen
2. Lokalität
Universität Paderborn
Algorithmen und Komplexität
Peter Mahlmann
A
Jede Menge N x , j enthält die bezüglich eines gegebenen metrischen
Raumes nahesten (x,j) Nachbarn. Der naheste Knoten mit Prefix xoj wird
primärer Nachbar genannt, alle anderen sekundäre Nachbarn
Wichtige Eigenschaft, die einen geringen Stretch gewährleistet!
(Verhältnis zwischen der vom Routing gefunden Distanz und der kürzesten Distanz)
Beobachtung:
Jeder Knoten findet seinen nahesten Nachbarn in der Menge
A

N



j 0 ,b 1
,j
Algorithmen für Peer-to-PeerNetzwerke
10
HEINZ NIXDORF INSTITUT
Root-Sets
Universität Paderborn
Algorithmen und Komplexität
Peter Mahlmann
Objekte mit ID Y werden von Root-Peers RY verwaltet.
Zuständige Peers werden durch Funktion MapRoots(Y) berechnet.
Menge RY wird Root-Set genannt und es gilt:
Eigenschaft 3:
Eindeutiges Root-Set
Root-Set RY für Objekt Y muss eindeutig sein, egal wo im Netzwerk
MapRoots(Y) berechnet wird
(Einfach zu gewährleisten, falls Hashfunktionen benutzt werden)
Problem: von MapRoots(Y) gelieferte Knoten müssen existieren!!
Algorithmen für Peer-to-PeerNetzwerke
11
HEINZ NIXDORF INSTITUT
Publikation von Objekten
Universität Paderborn
Algorithmen und Komplexität
Peter Mahlmann
Peers die ein Objekt Y bereitstellen (Storage Server), müssen dies den
zuständigen Root-Peers mitteilen:
Storage Server berechnet MapRoots(Y)=RY
Und schickt Nachricht an alle Roots in RY
(entlang primärer Nachbarn)
Jeder Peer, der die Nachricht weiterleitet,
speichert Objekt-Zeiger auf den Storage-Server
Algorithmen für Peer-to-PeerNetzwerke
12
HEINZ NIXDORF INSTITUT
Anfragen
Universität Paderborn
Algorithmen und Komplexität
Peter Mahlmann
Sucht ein Peer Objekt Y, so berechnet er ebenfalls MapRoots(Y)
wählt einen zufälligen Root-Server aus RY
Routet zu diesem Root-Server
(entlang primärer Nachbarn)
Wird dabei ein Objekt-Zeiger angetroffen,
so wird direkt zum Storage-Server
gesprungen
Algorithmen für Peer-to-PeerNetzwerke
13
HEINZ NIXDORF INSTITUT
Fehlertoleranz
Universität Paderborn
Algorithmen und Komplexität
Peter Mahlmann
Beobachtung 1:
Wenn |RY| >1 und die Root-Server in RY unabhängig voneinander sind
(uniformes Hashing), können fehlgeschlagene Suchen mit einem
anderen Root-Server wiederholt werden.
Kleine temporäre Fehler in den Routing Tabellen können tolleriert
werden
Fehlertoleranz durch Soft-State Pointer:
Links auf Objekte werden nach bestimmter Zeit verworfen
=>Storage Server müssen ihre Objekte regelmässig neu publizieren
•Vermeidet tote Links auf bereits ausgeschiedene Storage Server
•Neu eingetroffene Peers werden mit Links versorgt
Algorithmen für Peer-to-PeerNetzwerke
14
HEINZ NIXDORF INSTITUT
Surrogate Routing
Universität Paderborn
Algorithmen und Komplexität
Peter Mahlmann
Bislang vernachlässigt:
• MapRoots(Y) kann auf Server verweisen, die nicht existieren!
(sogar mit hoher Wahrscheinlichkeit! Warum??)
• Was geschieht bei Löchern in den Routing-Tabellen?
Lösung:
Surrogate Routing
• Versuche schrittweise den berechneten Root-Server zu erreichen
• Wird dabei auf ein Loch an Stelle (x,j) getroffen, dann wähle den nächsten
Eintrag (x,j+1) (existiert dieser nicht, dann (x,j+2),…)
• Fahre so lange fort, bis der aktuelle Peer der letzte Peer auf oder oberhalb des
aktuellen Routing Levels ist.
Der so gefundene Peer wird als Surrogate-Server bezeichnet
Algorithmen für Peer-to-PeerNetzwerke
15
HEINZ NIXDORF INSTITUT
Beispiel Surrogate Routing
Universität Paderborn
Algorithmen und Komplexität
Peter Mahlmann
 Suche nach 4666 durch Peer 2716:
2716
Level 1, j=4
4233
Level 2, j=6 existiert nicht, nächste Link: j=8
4899
Level 3, j=6
4860
Knoten 4860 hat keine Level 4 Nachbarn => fertig
Algorithmen für Peer-to-PeerNetzwerke
16
HEINZ NIXDORF INSTITUT
Eindeutigkeit Surrogate Routing
Universität Paderborn
Algorithmen und Komplexität
Peter Mahlmann
Theorem:
Wenn Eigenschaft 1 gilt (Konsistenz), dann wird Surrogate Routing eine
eindeutigen Root-Server bestimmen
Beweis durch Wiederspruch:
•Angenommen eine Anfrage nach Y endet bei verschiedenen Peers A und B.
•Sei x das längste gemeinsame Prefix von A und B mit |x|=i.
•Seien A´,B´ die Peers, die den i+1 Routing Schritt durchführen.
•(nach diesem Schritt bleiben die ersten i+1 Buchstaben gleich!)
•Von
N xA,*´
und
N xB,*´ müssen wegen Konsistenz die gleichen Mengen Leer sein!
 A´und B´ werden die Nachricht an einen Knoten mit demselben Buchstaben an
Stelle i+1 schicken, es sei denn, die Konsistenz ist gestört.
Wiederspruch!
Algorithmen für Peer-to-PeerNetzwerke
17
HEINZ NIXDORF INSTITUT
Surrogate Routing
Universität Paderborn
Algorithmen und Komplexität
Peter Mahlmann
Beobachtung 2:
Surrogate Routing lässt sich auf Gebrauch mit mehreren Root-Peers
verallgemeinern.
Es muss lediglich zum Surrogate-Peer des ausgewählten Root-Peers geroutet
werden.
Offensichtlich:
Routing in Tapestry benötigt O(log n) Hops
Algorithmen für Peer-to-PeerNetzwerke
18
HEINZ NIXDORF INSTITUT
Tapestry
Universität Paderborn
Algorithmen und Komplexität
Peter Mahlmann
Einfügen neuer Peers
Algorithmen für Peer-to-PeerNetzwerke
19
HEINZ NIXDORF INSTITUT
Einfügen neuer Peers
Universität Paderborn
Algorithmen und Komplexität
Peter Mahlmann
Wird ein Peer in das Netzwerk eingefügt, so soll das enstehende Netzwerk das
gleiche sein, als wenn das Netzwerk von Grund auf mit ihm konstruiert worden
wäre
Dafür muss Folgendes gewährleistet sein:
Eigenschaft 4:
Liegt Knoten A auf dem Pfad zwischen dem publizierenden Knoten von Objekt Y
und dessen Root-Server, dann besitzt A einen Link auf Y
Algorithmen für Peer-to-PeerNetzwerke
20
HEINZ NIXDORF INSTITUT
Algorithmus zum Einfügen eines Peers
Universität Paderborn
Algorithmen und Komplexität
Peter Mahlmann
Der Algorithmus lässt sich in die folgenden Schritte gliedern
 Suche im Netzwerk nach eigener ID, kopiere Nachbarschaftstabellen von so
gefundenem Surrogate-Peer
 Kontaktiere die Peers, die Löcher in ihren Routing Tabellen haben, die durch
den neuen Peer gefüllt werden können
Bsp: 1234 ist neuer Peer und es existierten keine 123? Peers, so müssen alle 12?? Peers
benachrichtigt werden
 Aufbauen der eigenen Routing Tabelle
Wir betrachten zunächst Schritt 2 …
Algorithmen für Peer-to-PeerNetzwerke
21
HEINZ NIXDORF INSTITUT
Acknowledged Multicast Algorithmus
Universität Paderborn
Algorithmen und Komplexität
Peter Mahlmann
Multicast Nachricht besteht aus Prefix X und einer Funktion
Ablauf:
•Der neue Peer sendet Multicast Nachricht an seinen Surrogate-Peer
(bestehend aus gemeinsamen Prefix und Funktion)
N xA,*
•Empfängt ein Knoten A die Nachricht, sendet er sie weiter an seine
Nachbarn (mit Prefix x*)
•Empfängt ein Knoten eine Nachricht, die nicht mehr weitergeleitet werden kann,
wendet er die mitgesendete Funktion an.
•Die Funktion transferiert Objekte zum neuen Peer und löscht nicht mehr benötigte
Verweise
•Jeder Knoten, der Nachrichten verschickt hat, erwart eine Rückmeldung von allen
empfängern. Sind diese eingetroffen, benachrichtigt er den „über“ ihm liegenden
Peer
Algorithmen für Peer-to-PeerNetzwerke
22
HEINZ NIXDORF INSTITUT
Acknowledge Multicast Algorithmus
Universität Paderborn
Algorithmen und Komplexität
Peter Mahlmann
Pseudocode des Algorithmus:
Algorithmen für Peer-to-PeerNetzwerke
23
HEINZ NIXDORF INSTITUT
Aufwand Acknowledge Multicast Algorithmus
Universität Paderborn
Algorithmen und Komplexität
Peter Mahlmann
Vernachlässigt man die Nachrichten, die ein Peer an sich selbst sendet, so
entsteht ein Spannbaum
Werden k Peers erreicht, so hat der Baum k Knoten und k-1 Kanten
O(k) Nachrichten
Algorithmen für Peer-to-PeerNetzwerke
24
HEINZ NIXDORF INSTITUT
Aufbauen der Nachbarschaftsmengen
Wir wollen die Nachbarschaftsmengen
N xA, j
Universität Paderborn
Algorithmen und Komplexität
Peter Mahlmann
für einen neuen Peer A bestimmen
Diese müssen Eigenschaften 1 (Konsistenz) und 2 (Lokalität) erfüllen!
Dies kommt dem Lösen des Nächste-Nachbarn Problems für viele verschiedene
Prefixe gleich
Die Nachbarschaftsmengen werden nun Level-weise aufgebaut.
Aus dem vorigen Schritt (Multicast) kennen wir bereits alle Knoten, die das Prefix x,
|x|=i, mit A teilen
Nun werden schrittweise die Level i Nachbarschaftsmengen aus den Level i+1
Nachbarschaftsmengen berechnet
Algorithmen für Peer-to-PeerNetzwerke
25
HEINZ NIXDORF INSTITUT
Schichtweise Erweiterung der N.-Mengen
Universität Paderborn
Algorithmen und Komplexität
Peter Mahlmann
Algorithmen Beschreibung
Fordere von allen Level i Nachbarn Listen mit ihren Links auf Level i-1 an
Kontaktiere alle diese Peers und berechne Entfernung zu Ihnen
(dabei prüfen kontaktierte Peers, ob sie den neuen Knoten selbst noch
aufnehmen müssen)
Speichere die k nahesten Peers in der eigenen Nachbarschaftsmenge
(dies gewährleistet die Lokalität)
Fahre fort, bis Level 0 erreicht ist
Algorithmen für Peer-to-PeerNetzwerke
26
HEINZ NIXDORF INSTITUT
Algorithmus für Nachbarschaftsmengen
Universität Paderborn
Algorithmen und Komplexität
Peter Mahlmann
Pseudocode Algorithmus:
Algorithmus hat mit hoher Wahrscheinlichkeit Laufzeit O(log2 n)
(ohne Beweis)
Algorithmen für Peer-to-PeerNetzwerke
27
HEINZ NIXDORF INSTITUT
Korrektheit
Universität Paderborn
Algorithmen und Komplexität
Peter Mahlmann
Korrektheit (Gewährleistung der Lokalität) des Algorithmus ist schwer zu zeigen!
Restriktion des Raumes ist notwendig:
Sei BA(r) die Menge aller Peers im Ball mit Radius r um Peer A.
Um Lokalitätseigenschaft für neue Peers gewährleisten zu können, muss gelten:
BA 2r   c BA r 
Für beliebige Konstante c (c wird Expansionskonstante gennant)
In diesem Fall kann man zeigen, dass falls b>c2 ein k=O(log n) existiert, so dass
der Algorithmus mit hoher Wahrscheinlichkeit die nahesten Nachbarn findet.
Beweis: siehe Distributed Object Location in a Dynamic Network
,Hildrum, Kubiatowics, Rao und Zao (2002)
Algorithmen für Peer-to-PeerNetzwerke
28
HEINZ NIXDORF INSTITUT
Tapestry
Universität Paderborn
Algorithmen und Komplexität
Peter Mahlmann
Entfernen von Knoten
Algorithmen für Peer-to-PeerNetzwerke
29
HEINZ NIXDORF INSTITUT
Entfernen von Knoten
Universität Paderborn
Algorithmen und Komplexität
Peter Mahlmann
Stellt Knoten A fest, dass Nachbar B tot ist, dann:
Entferne B aus Routing Tabelle
– Entstehen hierbei Löcher, müssen diese gefüllt werden, oder es muss
sichergestellt sein, dass das Loch nicht gefüllt werden kann
• Lösung: Acknowledged Multicast
Republiziere alle Objekte, deren nächster Hop zum Root-Peer B ist
(grüne Kanten)
Root
B
A
Algorithmen für Peer-to-PeerNetzwerke
30
HEINZ NIXDORF INSTITUT
Zusammenfassung
Universität Paderborn
Algorithmen und Komplexität
Peter Mahlmann
Besondere Eigenschaft von Tapestry:
– Konsequente Berücksichtigung von Lokalität
 dadurch niedriger Stretch!
Jedoch vergleichsweise komplizierter Aufbau!!
(insbesondere im Vergleich zu Chord und Koorde)
Algorithmen für Peer-to-PeerNetzwerke
31
HEINZ NIXDORF INSTITUT
Universität Paderborn
Algorithmen und Komplexität
Vielen Dank
Ende der 7. Vorlesung
Nächste Vorlesung:
Fr. 11.06.2004
Nächste Übung:
6. Übung Mo. 07.06.2004
9-11 Uhr
10,11,16 Uhr (A,B,C)
32
Herunterladen