Lezione 5 Domande: L’average path length di Chord con 2^b identificatori e N=2^b nodi è (giustificare la risposta) (b) (b/2) (log(N)) (Nessuna delle precedenti) Dimostrare che x -> ax+b (mod N) non è una funzione hash consistente Descrivere la famiglia dei protocolli F-Chord (suggerimento: mostrare semplicemente le differenze rispetto a Chord)
Riepilogo 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 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. Condizioni necessarie ma non sufficienti
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
Es. Chord Quanto valgono: grado? diametro? average path lenght? 000 111 001 110 010 101 011 b=3 100 Quanto valgono: grado? diametro? average path lenght? Il grado è b = log n
000 Es. Chord 111 001 110 010 101 011 b=3 100 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.
d(x,y) può essere diverso da d(y,x) 000 Es. Chord 111 001 110 010 Il diametro è b = log n 101 011 b=3 100 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). 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;
N denota l’insieme dei nodi 000 Es. Chord 111 001 110 010 101 011 b=3 100 Quanto vale l’average path lenght? 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: Svantaggi: 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ò
Es. Chord Quanto vale l’average path lenght? 000 111 001 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; 110 010 101 011 b=3 100 00…0 00…1 … 11…0 11…1 a
Fault tolerance and degree 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
Stiamo cercando dei Lower Bound 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
Ma allora Chord non è ottimale!!! 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!!!
Il grado in ingresso della radice è n-1 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) 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) 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
Alcuni esempi 6 contenitori e 12 biglie P2P: Lower Bound sistemi uniformi 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; 00010000010110100 00110001101000000 10001010100100000 00000110001000011 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.
Solo conti, abbastanza noiosi. 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
l=k è la scelta migliore 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
E’ possibile fare meglio di Chord, si può arrivare a Alcune osservazioni 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) E’ possibile fare meglio di Chord, si può arrivare a (0.72021 log n, 0.72021 log n)
Lezione 5 Domande: Consideriamo un sistema P2P con N nodi e grado k = O(log N), quale delle seguenti affermazioni è vera. (giustificare la risposta) il diametro è (log N) il diametro è almeno ½ log N il diametro è (log N / log log N) Nessuna delle precedenti Dato un sistema P2P uniforme con N nodi, grado k e diametro l, (giustificare la risposta) k è O(log N) se l è O(log N) l è (log N) se k è O(log N) l è (log N/ log log N) se k è O(log N)
Lezione 5 Domande: Quale delle seguenti affermazioni è vera (giustificare la risposta) I protocolli P2P uniformi sono più efficienti Non esiste un sistema P2P asintoticamente ottimo Chord è un sistema non uniforme Nessuna delle precedenti Consideriamo l’insieme dei protocolli P2P uniformi, quale delle seguenti affermazioni è vera . (giustificare la risposta) Chord è un sistema P2P asintoticamente ottimo (rispetto al tradeoff grado - diametro) Non esiste un sistema P2P asintoticamente ottimo (rispetto al tradeoff grado - diametro) Non esiste un sistema che offre prestazioni migliori del protocollo Chord (rispetto al tradeoff grado - diametro)
Fine Lezione 5