360 likes | 495 Views
Sistemi Peer To Peer (P2P) Avanzati. Gennaro Cordasco cordasco[@]dia.unisa.it http://www.dia.unisa.it/~cordasco Laboratorio ISISLAB2 (L8 a Baronissi). P2P: Alcune definizioni.
E N D
Sistemi Peer To Peer (P2P) Avanzati • Gennaro Cordasco • cordasco[@]dia.unisa.it • http://www.dia.unisa.it/~cordasco • Laboratorio ISISLAB2 (L8 a Baronissi)
P2P: Alcune definizioni • Sistema distribuito nel quale ogni nodo ha identiche capacità e responsabilità e tutte le comunicazioni sono potenzialmente simmetriche; • Siamo interessati ai sistemi P2P di seconda generazione, quelli che supportano DHT (Distributed Hash Table); • P2P Puro; • Analizzeremo alcuni protocolli Chord like; • Si basano sul ring; • Utilizzano consistent hashing; • Join/Leave uguali a Chord; • Cambiano i vicini (finger) e l’algoritmo di routing; Es: Chord
P2P: Scalabilità • Il lavoro richiesto a un determinato nodo nel sistema non deve crescere (o almeno cresce lentamente) in funzione del numero di nodi nel sistema; • La scalabilità di un protocollo dipende: • dalla topologia della rete; • dall’algoritmo di routing. • Obiettivi: • Minimizzare il numero di messaggi necessari per fare lookup; • Minimizzare, per ogni nodo, le informazioni relative agli altri nodi;
Condizioni necessarie ma non sufficienti Dal punto di vista topologico • Consideriamo una rete P2P come un grafo G=(V,E), dove V è l’insieme dei nodi nel sistema e E rappresenta l’insieme delle interconnessioni fra essi: • Minimizzare, per ogni nodo, le informazioni relative agli altri nodi: • minimizzare il grado dei nodi; • Minimizzare il numero di messaggi necessari per fare lookup: • Minimizzare il diametro; • Minimizzare l’average path lenght (APL), vale a dire, la distanza media fra due nodi nel grafo.
Es. Chord • Consideriamo un anello con n=2b nodi; • Ogni nodo x ha un etichetta a b bit che denotiamo con id(x); • I vicini del nodo x sono i nodi (x+2i) mod 2b i = 0,1, ,b-1; jump 000 111 001 110 010 101 011 b=3 100
000 Es. Chord 111 001 110 010 • Quanto valgono: • grado? • diametro? • average path lenght? 101 011 b=3 100 Il grado è b = log n
000 Es. Chord 111 001 110 010 • Dati due nodi x e y la loro distanza d(x,y) è uguale al numero di “1” che ci sono nella stringa binaria (y-x) mod 2b. • Infatti i jump necessari per passare dal nodo x al nodo y sono quelli relativi alla posizione degli “1” nella stringa binaria (y-x) mod 2b. 101 011 b=3 100
000 Es. Chord 111 001 110 010 • Calcoliamo la distanza tra il nodo 3 e il nodo 6: • (6-3) mod 8 = 3 = 011 (un jump da 2 e uno da 1). • Calcoliamo la distanza tra il nodo 6 e il nodo 3: • (3-6) mod 8 = 5 = 101 (un jump da 4 e uno da 1). Il diametro è b = log n 101 011 b=3 100 d(x,y) può essere diverso da d(y,x) Chord non è simmetrico
diametro Anello n -1 Chord e altri Grafo completo O(log n) 1 1 O(log n) n -1 grado n è il numero dei peer;
000 Es. Chord 111 001 110 010 • Quanto vale l’average path lenght? 101 011 b=3 100 N denota l’insieme dei nodi
Per semplicità consideriamo un sistema Chord like Sistemi P2P uniformi k=grado l=diametro • Denotiamo con Jx,i l’iesimo jump del nodo x; • Un sistema P2P viene detto uniforme, se per ogni coppia di nodi x e y, si ha Jx,i = Jy,i i =1,2,…,k. • Chord è uniforme? • APL sistemi uniformi: Si a è un generico nodo N
Sistemi P2P uniformi • Vantaggi: • Facili da implementare e da analizzare; • Algoritmo di routing semplice (greedy); • Routing locale, la procedura di lookup interessa solo i nodi che si trovano fra sorgente e destinazione; • Non c’è congestione sui nodi, vale a dire il traffico generato dai messaggi di lookup è più o meno uguale per tutti i nodi. • Fast bootstrap: • Poiché tutti i nodi utilizzano gli stessi jump, è possibile utilizzare la tabella di routing del proprio predecessore per velocizzare notevolmente l’operazione di join; • Svantaggi: • Sfortunatamente non sono gli algoritmi più efficienti. Lo vediamo fra un pò
000 Es. Chord 111 001 110 010 • Quanto vale l’average path lenght? • Scegliamo come nodo sorgente il nodo a=00…0; • La distanza fra a e il generico nodo x è uguale al numero di bit a 1 nella codifica binaria di x; 101 011 b=3 100 00…0 00…1 … 11…0 11…1 a
k=grado l=diametro Fault tolerance and degree • Il grado di una rete P2P soggetta a fallimenti deve essere almeno Ω(log n). • Infatti, Ω(log n) risulta essere il minimo valore che permette alla rete di rimanere connessa anche nelle condizioni più proibitive; • Sketch: • Supponiamo che tutti i nodi della rete possono fallire con probabilità ½; • Ovviamente un nodo rimane disconnesso se tutti i suoi vicini si disconnettono contemporaneamente; • Vogliamo che la probabilità che un nodo non si disconnetta sia ≥ 1-1/n; • Pr[un nodo non si disconnette]=1-(1/2)k ≥ 1-1/n 1/n ≥(1/2)k 2k≥ n k ≥ log n In realtà la prova è un po’ più complicata, ma questa rende bene l’idea
P2P: grado e diametro • Abbiamo visto che il grado di una rete P2P soggetta a fallimenti deve essere almeno Ω(log n). • Esistono in letteratura molti protocolli che hanno grado e diametro pari a O(log n). • E’ possibile fare di meglio? • Fissiamo il grado pari O(log n), qual è il minimo diametro che riusciamo ad ottenere? • Fissiamo il grado pari O(log n), qual è il minimo APL che riusciamo ad ottenere? Chord, tapestry, pasty… Stiamo cercando dei Lower Bound
k=grado l=diametro P2P: Lower Bound Teorema Dato un grafo G=(V,E) con |V| = n e grado k = O(log n), allora il diametro l = Ω(log n / log (log n)). Prova Dato che il grado è k e il diametro è l, ogni nodo può raggiungere al massimo altri nodi (compreso il nodo stesso). Poiché il grafo deve essere connesso, allora kl+1 > n l > logk (n) - 1 =Ω(log n / log (log n)). Con argomentazioni analoghe si può dimostrare che anche l’APL è Ω(log n / log (log n)) in quanto la maggior parte dei nodi si trova a distanza l-O(1). Ma allora Chord non è ottimale!!!
P2P: Lower Bound (Esempio 1) r • k = log n; • Ogni nodo ha grado k (k-1 figli e la radice dell’albero); • r raggiunge qualsiasi nodo in al più logk-1 n =O(log n / log (log n)) passi. • Il diametro è 1 + logk-1 n =O(log n / log (log n)). k-1 … … … Il grado in ingresso della radice è n-1
P2P: Lower Bound (Esempio 2) r • k = log n; • Ogni nodo ha grado(entrante più uscente) k ( k/2 -1 ai figli e 1 al padre (x2)); • r raggiunge qualsiasi nodo in al più logk/2 -1 n = O(log n / log (log n)) passi. • Ogni nodo raggiunge r in al più logk/2 -1 n = O(log n / log (log n)) passi • Il diametro è O(log n / log (log n)). k/2 -1 … … …
P2P: Lower Bound (Esempio 3) r • k = 6; • Ogni nodo ha grado(entrante più uscente) 6 ( 2 ai figli e 1 al padre (x2)); • r raggiunge qualsiasi nodo in al più log n passi. • Ogni nodo raggiunge r in al più log n passi • Il diametro è 2 log n. 2 … … La mole di traffico che spetta al nodo r è nettamente maggiore rispetto agli altri nodi La rete si disconnette se uno qualsiasi dei nodi (escluse le foglie) fallisce
P2P: Lower Bound sistemi uniformi Teorema Consideriamo un sistema P2P uniforme con n nodi, sia k il numero dei vicini che ogni nodo mantiene, allora il lower bound per il diametro è 1/2log n (l ≥ 1/2log n ) se k 1/2log n. Prova Sia J = {Ji}1i k Consideriamo senza perdita di generalità un nodo x e calcoliamo tutte le n path fra x e tutti gli altri nodi.
P2P: Lower Bound sistemi uniformi x compreso Sia P = {tutte le path da x agli altri n nodi} Sia f: P(N{0})k+1 p P denotiamo con ap,i il numero di jump di taglia Ji usati nella path p con 1 i k. Es Sia J={1,4,15} Sia p una path dal nodo 0 al nodo 9, (es. 4+4+1). Allora ap,1 = 1 , ap,2 = 2 e ap,3 = 0.
P2P: Lower Bound sistemi uniformi x compreso Sia P = {tutte le path da x agli altri n nodi} Sia f: P(N{0})k+1 Ovviamente poiché l è il diametro della rete. Definiamo f(p):=(ap,0,ap,1,…ap,k).
P2P: Lower Bound sistemi uniformi P = {tutte le path da x agli altri n nodi} f: P(N{0})k+1 f(p):=(ap,0,ap,1,…ap,k) Claim f è iniettiva (one to one) Prova Per assurdo supponiamo che esistano p e q P tali che ap,i = aq,i 0 i k. Quindi partendo dal nodo x, entrambe le path terminano nello stesso nodo destinazione. Assurdo: per definizione le path in P terminano in nodi diversi. Dominio Codominio
P2P: Lower Bound sistemi uniformi Poiché f è iniettiva, la dimensione del codominio è maggiore o uguale alla dimensione del dominio (vale a dire |C| ≥ |D|=n). Quanto vale la dimensione del codominio? La dimensione del codominio è uguale al numero di vettori (a0,a1,…,ak) tali che a0+a1+…+ak =l
P2P: Lower Bound sistemi uniformi Supponiamo di avere l biglie uguali e k+1 contenitori diversi. La dimensione del codominio è uguale al numero di modi in cui è possibile disporre l biglie identiche in k+1 contenitori diversi. … l … k+1
P2P: Lower Bound sistemi uniformi Primo contenitore vuoto Secondo contenitore 3 biglie Terzo contenitore 1 biglia Quarto contenitore 1 biglia Quinto contenitore 2 biglie Sesto contenitore 5 biglie Rappresentiamo con “0” le biglie e separiamo con “1” i contenitori Con k “1” possiamo rappresentare k+1 contenitori, mentre con l “0” possiamo rappresentare l biglie; 00010000010110100 00110001101000000 10001010100100000 00000110001000011 Alcuni esempi 6 contenitori e 12 biglie
P2P: Lower Bound sistemi uniformi 00010000010110100 00110001101000000 10001010100100000 00000110001000011 La dimensione del codominio è uguale al numero di combinazioni di k elementi su l+k; La dimensione del codominio è uguale al numero di combinazioni di l elementi su l+k; Alcuni esempi 6 contenitori e 12 biglie
P2P: Lower Bound sistemi uniformi Sappiamo che Ci rimane da dimostrare che se k 1/2log n allora l ≥ 1/2log n .
P2P: Lower Bound sistemi uniformi Proviamo che l≥k Per assurdo l<k E’ facile osservare che è crescente in l, quindi Assurdo Stirling approx Per ipotesi k 1/2log n.
P2P: Lower Bound sistemi uniformi Proviamo che l ≥ 1/2log n Per assurdo l < 1/2log n E’ facile osservare che è crescente in k, quindi Assurdo, quindi l ≥ 1/2log n CVD.
P2P: Lower Bound sistemi uniformi Teorema Consideriamo un sistema P2P uniforme con n nodi, sia k il numero dei vicini che ogni nodo mantiene, allora il diametro è Ω(log n) se k = O(log n). Prova La prima parte è identica al teorema precedente Solo conti, abbastanza noiosi.
diametro Anello n -1 Chord e altri Grafo completo LB O(log n) O(log n/ log(log n)) 1 1 O(log n) n -1 grado n è il numero dei peer;
Grafico funzione binomiale y 1 n/2 n-1 x
Come scegliere l e k? Supponiamo di avere un limite sulla somma di grado e diametro Es l+k = 16 Quali sono i valori di l e k ottimali? l=k è la scelta migliore
Alcune osservazioni E’ possibile fare meglio di Chord, si può arrivare a (0.72021 log n, 0.72021 log n) • Chord è asintoticamente ottimo • Uniforme • Facili da implementare e da analizzare; • Algoritmo di routing semplice (greedy); • Non c’è congestione sui nodi; • Fast bootstrap: • Routing locale; • GAP • Chord (log n, log n) • LB (½ log n, ½ log n)
Ricapitolando…. Sistemi P2P puri Sistemi Uniformi Sistemi Non uniformi Koorde Neighbor of Neighbor routing (NON) Abbiamo detto abbastanza