Documente Academic
Documente Profesional
Documente Cultură
Sisteme P2P
DHT(Distributed Hash Tables)
Chord
Pastry
Aplicatii
Sisteme P2P
Sisteme P2P
-scalabilitate
-distributie uniforma a taskurilor, reducerea fenomenului de
bottlenecking
-manipulare mai buna a exceptiilor
Clasificare sisteme P2P
-structurate, adresare directa folosind un Id unic,Ex: Youtube URL
fiecare obiect poate fi identificat usor, necesita o structura de
stocare
speciala pentru o manipulare eficienta
-nestructurate , cautare folosind termeni cheie, EX: cautarea in
sistem de fisiere
user friendly , dificil sa diferentiam 2 obiecte diferite
Hash table
-un sir de elemente (buckets)
-functie de hash mapeaza chei in elementele
din sir
-eficienta
-ofera o buna distributie a cheilor(SHA1)
-hash(x) = x mod 10
-inseram 0,1,4,25,16,19
-observam ca avem astfel o metoda
rapida de cautare a unei chei
Chord
Chord
Chord
Exemplu:
-inseram obiectul Foo cu valoarea 5, hash(Foo) = 2
-recuperam obiectul cu cheia 2 din punctul 1
Chord
Finger table
Nod
Chord
Operatia de cautare
n.find_successor(id)
if (id in (n, successor] )
return successor;
else
n0
=closest_preceding_node(id);
return n0.find_successor(id);
n.closest_preceding_node(id)
for i = m downto 1
if (finger[i] in (n, id))
return finger[i];
return finger[m];
Complexitate O(log n)
n.join(n')
predecessor = nil;
successor = n'.find_successor(n);
Chord
Operatia de initializare finger table
n.init_finger_table()
k = n.find_succesor(n + 1)
for i = 2 t o m
if (k >= i +
)
finger[i] = k
else
finger[i] = n.find_succesor(n +
Complexitate
Chord
Stabilizare
n.stabilize()
x=
successor.predecessor;
if (x in (n, successor))
successor = x;
successor.notify(n);
n.notify(n')
if (predecessor is nil or n in
(predecessor, n))
n.fix_fingers()
next = next + 1;
if (next > m)
next = 1;
finger[next] = find_successor(n +
predecessor = n';
);
Plaxton
Plaxton
Exemplu algoritm routare
Bibliografie
1.
2.
3.
4.
5.
6.
http://en.wikipedia.org/wiki/Peer-to-peer
http://www.cs.helsinki.fi/u/jakangas/Teaching/P2P/P2P-03-Net+DHTs.pdf
Peer to Peer Computing the Evolution of a Disruptive Technology
http://en.wikipedia.org/wiki/Chord_%28peer-to-peer%29
Chord: A Scalable Peer-to-peer Lookup Protocol for Internet Applications
(http://pdos.csail.mit.edu/papers/ton:chord/paper-ton.pdf)
Parallel Algorithms (Chapman & Hall/CRC Numerical Analysis and
Scientific Computing Series)