Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoCalandra Coco Modificato 10 anni fa
1
Sistemi P2P avanzati Sistemi Peer To Peer (P2P) Avanzati Gennaro Cordasco – cordasco@dia.unisa.itcordasco@dia.unisa.it – http://www.dia.unisa.it/~cordascohttp://www.dia.unisa.it/~cordasco – Laboratorio ISISLAB 2 (L8 a Baronissi)
2
Sistemi P2P avanzati Outline Peer-to-Peer (P2P) –Motivazioni Un po di storia –Napster –Gnutella Classificazione P2P Open Problems
3
Sistemi P2P avanzati Peer-to-Peer (P2P) File Sharing? Sistema distribuito nel quale ogni nodo ha identiche capacità e responsabilità e tutte le comunicazioni sono potenzialmente simmetriche; Peer to peer (obiettivi): condividere risorse e servizi (dove per risorse e servizi intendiamo: scambio di informazioni, cicli di CPU, spazio sul disco …); I sistemi P2P possiedono molti aspetti tecnici interessanti: –permettono di sfruttare risorse altrimenti non utilizzate; –controllo decentralizzato (niente Server); –assenza di punti nevralgici (single point to failure); –si organizzano da soli;
4
Sistemi P2P avanzati P2P: Applicazioni File Sharing system File Storage system Distributed file system Grid Computing Redundant storage Anonymity system Collaboration system Instant Messaging system napster gnutella morpheus kazaa bearshare seti@home folding@home ebay limewire icq fiorana mojo nation jxta united devices open cola uddi process tree can Chord ocean store farsite pastry tapestry ? grove netmeeting freenet popular power jabber Kademlia Kelips Viceroy
5
Sistemi P2P avanzati P2P: Storia Proposti già da oltre 30 anni (ARPAnet era una rete P2P!!!); Lintroduzione del Web e la grande differenza, in termini di prestazioni, fra macchine Client e Server ha spostato lattenzione verso i sistemi Client\Server; Successivamente, laumento delle prestazioni delle macchine Client e laumento delle capacità di banda della Rete, hanno portato un maggiore interesse verso le risorse che si trovano sul bordo della Rete. Alla fine degli anni novanta sono nati quindi i primi sistemi P2P (ICQ, Seti@Home) Linteresse verso questo tipo di protocolli è aumentato con la nascita dei primi sistemi per file-sharing (Napster (1999), Gnutella(2000)); –Nel 2000 50 milioni di utenti hanno scaricato il Client di Napster; –Napster ha avuto un picco di traffico di circa 7 TB in un giorno;
6
Sistemi P2P avanzati P2P: Storia(2) Sfortunatamente i primi sistemi P2P soffrivano di gravi problemi di scalabilità Napster era un sistema P2P con lookup centralizzata
7
Sistemi P2P avanzati P2P: Storia(3) Leredità di Napster è stata raccolta da Gnutella; Il 14/03/2000 Justin Frankel e Tom Pepper realizzano la prima release di Gnutella (!!! Solo 14 ore !!! ); La taglia della rete cresce in 7 mesi da 2K a 48K nodi; Tuttavia nel 95% delle query il diametro è di 7-8 hop; Le applicazioni più conosciute che si basano sul protocollo Gnutella sono: – BearShare; – LimeWire; – …
8
Sistemi P2P avanzati P2P: Storia(4) La lista degli host presenti nella rete è disponibile sul Server gnutellahost.com; Il Server gnutellahost.com(127.186.112.097) viene usato dai nodi per il boot: –Single point of failure; –La ricerca di un file usa il flooding (non è scalabile): –controllo dei cicli; –TTL per evitare di congestionare la rete; C A BD E As query (e.g., X) Cs query hit Es query hit X X GET X X
9
Sistemi P2P avanzati P2P: Storia(4)
10
Sistemi P2P avanzati 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; I protocolli usati da Napster e Gnutella non sono scalabili; Per migliorare la scalabilità sono nati i cosiddetti protocolli P2P di seconda generazione che supportano DHTs (Distributed Hash Tables); Alcuni esempi di questi protocolli sono: Tapestry, Chord, CAN, Viceroy, Koorde, kademlia, kelips …;
11
Sistemi P2P avanzati Esempi
12
Sistemi P2P avanzati P2P di seconda generazione e DHT A ogni risorsa e ad ogni nodo è associata una chiave La chiave viene di solito creata facendo lhash del nome della risorsa o dellIP del nodo Ogni nodo del sistema è responsabile di un insieme di risorse/chiavi e tutti realizzano una DHT Lunica operazione che un sistema DHT deve fornire è lookup(chiave), la quale restituisce lidentità del responsabile di una determinata chiave
13
Sistemi P2P avanzati P2P di seconda generazione e DHT Tutti i nodi del sistema condividono una tabella hash Conoscono la struttura della tabella Ma non conoscono il responsabile di una determinata entry Nodo x Nodo y Nodo z ID 0123456…2m0123456…2m …
14
Sistemi P2P avanzati P2P Classificazione Sistemi P2P Centralizzati (a.k.a. Ibridi) Sistemi P2P Gerarchici Sistemi P2P Puri Sistemi P2P che utilizzano SuperPeer
15
Sistemi P2P avanzati P2P Classificazione Sistemi P2P Centralizzati (a.k.a. Ibridi) Resource request P2P Communication
16
Sistemi P2P avanzati P2P Classificazione Sistemi P2P Gerarchici Servers/Coordinators Communication Resource request P2P Communication
17
Sistemi P2P avanzati P2P Classificazione Sistemi P2P Puri P2P Communication
18
Sistemi P2P avanzati P2P Classificazione Sistemi P2P che utilizzano SuperPeer Servers/Coordinators Communication Resource request P2P Communication
19
Sistemi P2P avanzati P2P Classificazione(2) E possibile classificare i sistemi P2P in base allapplicazione fornita: –File Sharing –Communication –Distributed Computing –Collaboration
20
Sistemi P2P avanzati P2P Desiderata Scalability Stability Performance Decentralization Load Balancing Topology awareness Flexibility
21
Sistemi P2P avanzati P2P: Capacità di far fronte ai fallimenti Cosa succede se un nodo cade? –I dati presenti nel nodo possono essere recuperati solo se ci sono duplicati. –Il routing continua a funzionare? Con quale efficienza? –Quanto costa una procedura per ripristinare tutti i link? –Chi chiama questa procedura? (vale a dire chi si accorge che un nodo non è attivo).
22
Sistemi P2P avanzati P2P: Routing Hot Spots Se una chiave è richiesta più spesso, il responsabile della chiave e anche i suoi vicini potrebbero sovraccaricarsi; – Per ovviare al problema si possono usare meccanismi di caching e di duplicazione; Diverso è il problema relativo ai nodi che si sovraccaricano per il traffico generato dalle lookup; – Questo tipo di traffico è abbastanza difficile da individuare e da gestire;
23
Sistemi P2P avanzati P2P: Performance Dal punto di vista topologico: Consideriamo una rete P2P come un grafo G=(V,E), dove V è linsieme dei nodi nel sistema e E rappresenta linsieme 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 laverage path lenght (APL), vale a dire, la distanza media fra due nodi nel grafo. Condizioni necessarie ma non sufficienti
24
Sistemi P2P avanzati P2P: Incorporating Geography Di solito le le prestazioni del routing dei sistemi P2P si misurano contando il numero di hop necessari a individuare il responsabile di una chiave a parità di link nella rete Sarebbe utile, inoltre, minimizzare la latenza del singolo hop In pratica vogliamo che nodi vicini sulla rete DHT, siano fisicamente vicini s t s t
25
Sistemi P2P avanzati P2P: Incorporating Geography(2) Alcune tecniche: –Geographic Layout: Usare un algoritmo per attribuire le chiavi ai nodi in modo che nodi fisicamente vicini abbiano identificatori simili. (Controindicazioni: Bilanciamento del carico, Routing Hot Spots e Sicurezza) – PNS(Proximity neighbor selection) La scelta dei vicini non dipende solo dalla distanza fra i nodi sulla rete di overlay ma è influenzata anche dalle distanze reali –PRS(Proximity routing selection) Durante la ricerca lalgoritmo di routing non sceglie il successivo step basandosi solo sulla distanza fra i nodi nella rete di overlay; considera anche la distanza effettiva fra i nodi (in termini di RTT)
26
Sistemi P2P avanzati P2P: Extreme Heterogeneity I nodi connessi a questo tipo di reti sono eterogenei (Es. capacità di calcolo e banda) E possibile progettare algoritmi di routing che considerino anche questa eterogeneità La tecnica più diffusa per risolvere questo problema consiste nel considerare dei nodi virtuali tutti con le stesse capacità e assegnare a ogni nodo reale un numero di nodi virtuali proporzionale alle proprie capacità
27
Sistemi P2P avanzati P2P: Sicurezza E possibile realizzare un protocollo P2P che resiste ad attacchi di tipo denial of service E necessario replicare i dati E importante usare funzioni hash One Way (per i dati e per i nodi) E importante osservare che tutte le dimostrazioni relative alla sicurezza dei vari algoritmi incontrati finora si basano sul fatto che le chiavi vengono associate ai nodi e alle risorse in modo pseudo- casuale (quasi tutti gli algoritmi usano SHA-1)
28
Sistemi P2P avanzati Riferimenti http://www.pdos.lcs.mit.edu/chord/ http://www.napster.com/ http://www.gnutella.com/ http:// www.openp2p.com/ S. Ratnasamy, S. Shenker, and I. Stoica. Routing algorithms for DHTs: Some open questions. In 1st International Peer To Peer Systems Workshop (IPTPS02). I. Stoica, R. Morris, D. Liben-Nowell, D. R. Karger, M. F. Kaashoek, F. Dabek, H. Balakrishnan, Chord: A Scalable Peer-to-peer Lookup Protocol for Internet Applications. In IEEE/ACM Trans. on Networking, 2003.
29
Sistemi P2P avanzati Fine Lezione 1
30
Sistemi P2P avanzati Lezione 2
31
Sistemi P2P avanzati Chord: A Scalable Peer-to-Peer Lookup Protocol for Internet Applications Autori: I. Stoica, R. Morris, D. Liben-Nowell, D. R. Karger, M. F. Kaashoek, F. Dabek, H. Balakrishnan MIT and Berkley http://www.pdos.lcs.mit.edu/chord/
32
Sistemi P2P avanzati Outline Motivazioni Idea Protocollo Valutazione delle prestazioni: lookup
33
Sistemi P2P avanzati Chord: Obiettivi Load Balance Decentralization Scalability Availability Flexibility
34
Sistemi P2P avanzati Chord: Lookup Come trovare risorse in un sistema completamente decentralizzato? La lookup è semplicemente una operazione, a disposizione di tutti i peer di un sistema P2P, che data una chiave (una risorsa), restituisce il gestore/responsabile della risorsa. Possiamo vedere loperazione lookup come una funzione (dinamica) che prende in input una chiave (un identificatore a 160 bit) e restituisce un indirizzo IP. Lookup(id) IP address
35
Sistemi P2P avanzati Chord: Lookup Come trovare risorse in un sistema completamente decentralizzato? il Lookup è il problema fondamentale Internet Publisher Key=LetItBe Value=MP3 data Lookup(LetItBe) N1N1 N2N2 N3N3 N5N5 N4N4 Client ?
36
Sistemi P2P avanzati Chord: Lookup DHTs (Tapestry, Pastry, Chord, CAN,…) Qualè il modo migliore di realizzare il servizio di lookup? Internet Publisher Key=LetItBe Value=MP3 data Lookup(LetItBe) N1N1 N2N2 N3N3 N5N5 N4N4 Client
37
Sistemi P2P avanzati Chord Quale è il miglior modo per costruire le tabelle di routing? Come facciamo a mantenere sempre corrette le tabelle di routing in situazioni molto dinamiche? Come gestire lingresso (join) e luscita (leave) dei nodi? Quale è il miglior algoritimo di routing?
38
Sistemi P2P avanzati Chord: Consistent Hashing Fondamentalmente, larchitettura di Chord è basata su un ring di 2 m identificatori [0, 2 m -1] (di solito m = 160) Chord usa Consistent Hashing per assegnare identificatori sia ai nodi/peers sia alle risorse Consistent Hashing permette: –bilanciamento del carico sui nodi (con N nodi e K risorse, ogni nodo gestisce circa (1+ )K/N chiavi (risorse), dove =O(log N)) –basso numero di operazioni di manutenzione a seguito di join/leave dei nodi (quando entra lN+1 th nodo nel sistema circa O(K/N) chiavi (risorse) devono cambiare posizione) Discuteremo in dettaglio Consisten Hashing nelle prossime lezioni
39
Sistemi P2P avanzati Chord: Overview La tabella di routing relativa alle risorse è distribuita su tutti i nodi attivi del sistema Per risolvere una lookup è necessario che i nodi si scambino informazioni Prestazioni: In una rete stabile di N nodi, ogni nodo mantiene informazioni relative a O(log N) vicini e risolve qualsiasi lookup con al più O(log N) messaggi Tuttavia anche se la rete non è stabile con poca informazione (1 solo link) il protocollo Chord garantisce la correttezza della lookup
40
Sistemi P2P avanzati Chord: Identificatori Lo spazio degli identificatori a m bit è utilizzato sia per le risorse che per i nodi identificatore di Chiave = SHA-1(Risorsa) identificatore di Nodo = SHA-1(indirizzo IP) chiave=LetItBe ID=60 SHA-1 IP=198.10.10.1 ID=123 SHA-1
41
Sistemi P2P avanzati Chord: Identificatori Gli identificatori ottenuti utilizzando Consistent Hashing vengono mappati su un ring circolare modulo 2 m m=6 000000 101000 100000 011000 010000 001000 110000 111000
42
Sistemi P2P avanzati Chord Il responsabile di una risorsa x con ID k è il primo nodo che si incontra procedendo in senso orario a partire da k. m=6 1 8 10 14 nodi risorse 21 24 30 32 48 51 56 54 38 42
43
Sistemi P2P avanzati Chord Esempio leave (nodo 14) m=6 1 8 10 14 nodi risorse 21 24 30 32 48 51 56 54 38 42
44
Sistemi P2P avanzati Chord Esempio join (nodo 26) m=6 1 8 10 nodi risorse 21 24 30 32 48 51 56 54 38 42 26
45
Sistemi P2P avanzati Chord: Lookup Ogni nodo ha informazioni su tutti gli altri Supponiamo che il nodo 8 è interessato alla chiave 54: poiché il nodo 8 conosce tutti i nodi, è in grado di sapere senza fare nessuna richiesta che la chiave 54 è gestita dal nodo 56 Richiede info globali Tabella di routing N Costo lookup O(1) msg Manutenzione: Praticamente ingestibile!!! m=6 1 8 10 nodi risorse 21 24 30 32 48 51 56 54 38 42 26
46
Sistemi P2P avanzati Chord: Lookup(2) Ogni nodo conosce solo il proprio successore Supponiamo che il nodo 8 è interessato alla chiave 54: ogni nodo conosce solo il proprio successore e quindi la query attraversa lanello in senso orario finché non raggiunge il predecessore della destinazione Richiede poche info: Tabella di routing 1 entry Costo lookup O(N) msg m=6 1 8 10 nodi risorse 21 24 30 32 48 51 56 54 38 42 26
47
Sistemi P2P avanzati Simple Key location Il nodo n chiama lookup(id) Il nodo 8 chiama lookup(54)
48
Sistemi P2P avanzati Chord: Correttezza Routing Ogni nodo n di Chord mantiene log N successori del nodo n più il predecessore Questo insieme di nodi viene usato per dimostrare la correttezza del Routing 1 8 10 nodi risorse 21 24 51 56 54 38
49
Sistemi P2P avanzati Chord: Lookup(3) Ogni nodo conosce, al più, altri m nodi nel sistema (fingers) Mostreremo che w.h.p. il numero di finger è O(log N) La distanza cresce esponenzialmente In particolare, il finger i del nodo n punta al responsabile (successor) della chiave n+2 i-1 m=6 1 8 10 nodi risorse 21 24 30 32 48 51 56 54 38 42 26
50
Sistemi P2P avanzati Chord: Ricapitolando Ogni nodo n di Chord mantiene la connessione con log N successori (successors) del nodo n più il predecessore Inoltre, ogni nodo conosce, al più, altri O(log N) w.h.p, nodi nel sistema (fingers) In totale ogni nodo mantiene log N +1 + O(log N)=O(log N) connessioni m=6 1 8 10 nodi risorse 21 24 30 32 48 51 56 54 38 42 26
51
Sistemi P2P avanzati Tavola dei finger IDResp. 8+1=914 8+2=1114 8+8=1621 8+16=2424 8+32=4042 8+4=1214 m=6 indiceNod o 114 221 432 538 642 324 Successors Predecessor Nodo 1
52
Sistemi P2P avanzati 0 1 2 3 4 15 14 13 11 12 8 9 10 7 6 5 14 1 2 10 successor(1)=1 0 successor(2)=3 successor(6)=6 successor(9)=9 successor(10)=13 successor(14)=15 6 9 successor(0)=0
53
Sistemi P2P avanzati 0 1 2 3 4 15 14 13 11 12 8 9 10 7 6 5 14 1 2 10 0 6 9 isuccnode 123 233 356 499 isuccnode 11013 21113 3 411 isuccnode 11415 2 311 456 Qualcuno vuol provare a descrivere la tabella di routing del nodo 9? ?? ?? ?? ??
54
Sistemi P2P avanzati Algoritmo Lookup Il nodo n chiama lookup(id)
55
Sistemi P2P avanzati 0 1 2 3 4 15 14 13 11 12 8 9 10 7 6 5 14 isuccnode 123 233 356 499 isuccnode 11013 21113 3 411 isuccnode 11415 2 311 456
56
Sistemi P2P avanzati Join e Stabilization Crea Anello Vuoto Join n=N26, n=qualunque nodo attivo Stabilize n=N26 n=N21
57
Sistemi P2P avanzati Join e Stabilization Altre operazioni periodiche ma utilizzate con frequenza minore sono fix.finger e check.predecessor
58
Sistemi P2P avanzati Chord: Risultati Lemma Dato un qualunque intervallo di ampiezza 2 m /N, il numero di ID di nodi atteso in questo intervallo è 1 e O(log N) w.h.p.
59
Sistemi P2P avanzati Chord: Risultati Teorema Il numero dei nodi che deve essere contattato per risolvere una lookup è O(log N) w.h.p., Dim Supponiamo che il nodo n deve risolvere una lookup per lid k Siano p e s, rispettivamente, il predecessore e il successore dellID k Se n p e n s, n non è in grado di risolvere da solo la query n k p s
60
Sistemi P2P avanzati Chord: Risultati Teorema Il numero dei nodi che deve essere contattato per risolvere una lookup è O(log N) w.h.p. Dim … n contatta, quindi, il più vicino predecessore di k a lui noto (il più grande finger che non va oltre k). Sia i tale che p [n+2 i-1, n+2 i ) Poiché tale intervallo contiene almeno un nodo (p) il nodo n contattera li-esimo finger f. Ovviamente tale nodo, ha ID minore o uguale di p. Per definizione di finger la distanza fra n e f è almeno 2 i-1 n id p f s
61
Sistemi P2P avanzati Chord: Risultati Teorema Il numero dei nodi che deve essere contattato per risolvere una lookup è O(log N) w.h.p. Dim … Per definizione di finger la distanza fra n e f è almeno 2 i-1 Inoltre f e p sono entrambi nellintervallo [n+2 i-1, n+2 i ), quindi la loro distanza è al più 2 i-1 In altre parole, f è più vicino a p che a n, e quindi ad ogni hop la distanza almeno si dimezza n id p f s
62
Sistemi P2P avanzati Chord: Risultati Teorema Il numero dei nodi che deve essere contattato per risolvere una lookup è O(log N) w.h.p. Dim …. Ad ogni hop la distanza almeno si dimezza La distanza maggiore fra due ID è 2 m -1, poiché tale distanza ad ogni hop si dimezza, in m hop siamo in grado di eseguire qualunque lookup n id p f s
63
Sistemi P2P avanzati Chord: Risultati Teorema Il numero dei nodi che deve essere contattato per risolvere una lookup è O(log N) w.h.p.. Dim Sappiamo che ad ogni hop la distanza, in termini di id fra sorgente e destinazione si dimezza. Supponiamo di effettuare log N hops, dopo questi passi la distanza dalla destinazione si riduce ad al più 2 m / 2 logN = 2 m /N. Sappiamo dal lemma precedente che in un tale intervallo ci sono al più O(log N) nodi w.h.p. Quindi effettuando altri O(log N) passi (anche usando solo i successori negli ultimi O(log N) passi) arriviamo alla destinazione. In totale log N + O(log N) = O(log N) passi.
64
Sistemi P2P avanzati La Lookup impiega O(log N) hop 32 10 5 20 110 99 80 60 Lookup(19) 19
65
Sistemi P2P avanzati Chord: Risultati Abbiamo detto che i nodi di Chord mantengono O(log N) informazioni relative ad altri nodi, daltra parte abbiamo detto che un nodo può avere m fingers. In realtà, è possibile mostrare che non tutti gli m i finger sono nodi distinti. Quello che accade è che, w.h.p., i primi m-2logN finger cadono tutti sul successore del nodo. Infatti un lemma analogo a quello mostrato in precedenza permette di dimostrare che che la distanza minima fra due nodi (w.h.p.) è almeno 2 m /N 2 Abbiamo detto che il finger i del nodo n cade nel successore dellID n+2 i-1 Di conseguenza, per ogni i m - 2log N +1, il responsabile dellID n+2 i-1 n+ 2 m /N 2 cade nel successore di n. In totale il numero dei nodi distinti che bisogna mantenere nella tabella di routing è m – (m - 2log N) = O(log N)
66
Sistemi P2P avanzati Chord: Risultati Lemma Dato un qualunque intervallo di ampiezza 2 m /N, il numero di ID di nodi atteso in questo intervallo è 1 ed O(log N) w.h.p. Dim Abbiamo necessita di alcuni risultati intermedi: –Disuguaglianza di Marcov Sia X una variabile casuale a valori positivi, allora per ogni a>0: E[X] a Pr[X a]
67
Sistemi P2P avanzati Disuguaglianza di Marcov Sia X una variabile casuale a valori positivi, allora per ogni a>0: E[X] a Pr[X a] Dim Proviamo per una variabile casuale discreta che assume valori da 1 a k (è il nostro caso):
68
Sistemi P2P avanzati Disuguaglianza di Marcov Sia X una variabile casuale a valori positivi, allora per ogni a>0: E[X] a Pr[X a] Dim Proviamo per una variabile casuale discreta che assume valori da 1 a k (è il nostro caso):
69
Sistemi P2P avanzati Chord: Risultati Lemma Dato un qualunque intervallo di ampiezza 2 m /N, il numero di ID di nodi atteso in questo intervallo è 1 e O(log N) w.h.p. Dim Abbiamo necessita di alcuni risultati intermedi: –Disuguaglianza di Marcov – Chernoff Bound Siano X 1, X 2, …,X n prove ripetute indipendenti tali che per 1 i n, Pr[X i =1]=p i, 0 < p i < 1. Se allora
70
Sistemi P2P avanzati Chernoff Bound Siano X 1, X 2, …,X n prove ripetute indipendenti tali che per 1 i n, Pr[X i =1]=p i, 0 < p i < 1. Se allora Dim per ogni reale positivo t. Se applichiamo la disuguaglianza di Marcov a destra si ottiene exp(x)=e x
71
Sistemi P2P avanzati Chernoff Bound Siano X 1, X 2, …,X n prove ripetute indipendenti tali che per 1 i n, Pr[X i =1]=p i, 0 < p i < 1. Se allora Dim … Poichè le X i sono indipendenti, anche le exp(tX i ) lo sono.
72
Sistemi P2P avanzati Chernoff Bound Siano X 1, X 2, …,X n prove ripetute indipendenti tali che per 1 i n, Pr[X i =1]=p i, 0 < p i < 1. Se allora Dim … La variabile exp(tX i ) assume valore e t con probabilità p i e 1 con probabilità 1-p i.
73
Sistemi P2P avanzati Chernoff Bound Siano X 1, X 2, …,X n prove ripetute indipendenti tali che per 1 i n, Pr[X i =1]=p i, 0 < p i < 1. Se allora Dim … La variabile exp(tX i ) assume valore e t con probabilità p i e 1 con probabilità 1-p i.
74
Sistemi P2P avanzati Chernoff Bound Siano X 1, X 2, …,X n prove ripetute indipendenti tali che per 1 i n, Pr[X i =1]=p i, 0 < p i < 1. Se allora Dim … Poichè 1+x<e x
75
Sistemi P2P avanzati Chernoff Bound Siano X 1, X 2, …,X n prove ripetute indipendenti tali che per 1 i n, Pr[X i =1]=p i, 0 < p i < 1. Se allora Dim … la espressione a destra assume il valore minimo per t=ln(1+δ). Sostituendo otteniamo il Teorema.
76
Sistemi P2P avanzati Chord: Risultati Lemma Dato un qualunque intervallo di ampiezza 2 m /N, il numero di ID di nodi atteso in questo intervallo è 1 e O(log N) w.h.p. Dim Abbiamo necessita di alcuni risultati intermedi: –Disuguaglianza di Marcov – Chernoff Bound Definiamo
77
Sistemi P2P avanzati Chord: Risultati Lemma Dato un qualunque intervallo di ampiezza 2 m /N, il numero di ID di nodi atteso in questo intervallo è 1 e O(log N) w.h.p. Dim E quindi per >2e-1,
78
Sistemi P2P avanzati Chord: Risultati Lemma Dato un qualunque intervallo di ampiezza 2 m /N, il numero di ID di nodi atteso in questo intervallo è 1 e O(log N) w.h.p. Dim La precedente relazione può essere utilizzata per risolvere il problema: Per quali valori di δ la probabilità che X>(1+δ)μ è trascurabile ?
79
Sistemi P2P avanzati Chord: Risultati Lemma Dato un qualunque intervallo di ampiezza 2 m /N, il numero di ID di nodi atteso in questo intervallo è 1 e O(log N) w.h.p. Dim Modelliamo il nostro esperimento come il lancio di N palline in N contenitori. Sia Y i il numero di palline cadute nelli-esimo contenitore. Siamo in presenza di prove ripetute indipendenti. La probabilità di successo p i =1/N. La media risulta banalmente 1. 2 m /N
80
Sistemi P2P avanzati Chord: Risultati Lemma Dato un qualunque intervallo di ampiezza 2 m /N, il numero di ID di nodi atteso in questo intervallo è 1 e O(log N) w.h.p. Dim La probabilità che il numero di palline in un contenitore sia k log 2 N è limitata dalla relazione Con δ = k log 2 N -1. Sostituendo otteniamo 2 m /N Altamente improbabil e
81
Sistemi P2P avanzati Ricapitolando Le chiavi sono mappate su un array circolare costituito da 2 m identificatori; Il nodo responsabile di una determinata chiave è il primo nodo che la succede in senso orario; Ogni nodo n di Chord mantiene due insiemi di vicini: –Il primo contiene gli m successori del nodo n più il predecessore. Questo insieme viene usato per dimostrare la correttezza del Routing; –Un insieme di n nodi costituito dai responsabili delle chiavi distanziate esponenzialmente dal nodo n, vale a dire linsieme delle chiavi che si trovano a distanza 2 i da n dove 0 i m-1. Questo insieme viene usato per dimostrare lefficienza del Routing; m=3
82
Sistemi P2P avanzati Le informazioni che il nodo deve mantenere sugli altri nodi sono log N + m + 1 (O(log N) WHP); Il numero di messaggi necessari per fare lookup è m (O(log N) WHP); Lalgoritmo di routing effettua a ogni step il passo più grande che riesce a fare, senza mai superare il target; Il costo che si paga quando un nodo lascia o si connette alla rete è di O(log 2 N) messaggi WHP; Lalgoritmo in pratica simula un Ipercubo, inoltre si comporta molto bene in un sistema dinamico. 000 101 100 011 010 001 110 111 110 Ricapitolando
83
Sistemi P2P avanzati Fine Lezione 2 Domande??
84
Sistemi P2P avanzati Lezione 3 Chord seconda parte
85
Sistemi P2P avanzati Facciamo un piccolo test Quanti successori ha un ring nel protocollo Chord? (m) (1) (log N) (nessun prec.) Considerate il protocollo Chord definito con (log N) predecessori e 1 successore, dimostrare che il protocollo è tollerante ai fallimenti Aumentando il numero di identificatori in un anello, le performance del protocollo (+) (-) (=) (nessun prec.)
86
Sistemi P2P avanzati Lezione 3 Dato lanello in figura mostrare i passi della procedura lookup da 56 a 38 Mostrare la tabella dei finger del nodo 48 Quanti messaggi impiega in genere la procedura lookup? (2) (O(m)) (log N-1) (nessun prec) Giustificare la risposta m=6 1 8 10 nodi risorse 21 24 48 51 56 54 38 42 26 28
87
Sistemi P2P avanzati Outline Chord Riepilogo Join and Stabilization, Failure and Replication (Leave) Valutazione Osservazioni e Conclusioni
88
Sistemi P2P avanzati Chord: Ricapitolando Le chiavi sono mappate su un array circolare costituito da 2 m identificatori; Il nodo responsabile di una determinata chiave è il primo nodo che la succede in senso orario; Ogni nodo n di Chord mantiene la connessione con r=log N successori (successors) del nodo n più il predecessore Inoltre, ogni nodo conosce, al più, altri O(log N) w.h.p, nodi nel sistema (fingers) In totale ogni nodo mantiene log N +1 + O(log N)=O(log N) connessioni (whp) Costo lookup O(log N) msg (whp) m=6 1 8 10 nodi risorse 21 24 30 32 48 51 56 54 38 42 26
89
Sistemi P2P avanzati Join e Stabilization Crea Anello Vuoto Join n=N26, n=qualunque nodo attivo Stabilize n=N26 n=N21
90
Sistemi P2P avanzati Join e Stabilization Altre operazioni periodiche ma utilizzate con frequenza minore sono fix.finger e check.predecessor
91
Sistemi P2P avanzati Chord: Join Abbiamo visto che la procedura join appena definita non completa laggiornamento di tutti i link necessari. Al fine di aggiornare tutti i link del nodo sono necessari alcuni runs di stabilize (che comprende inoltre la notify) e m (log N whp) runs della procedura fix.finger (sia da parte del nodo che ha effettuato la join sia da parte di altri nodi che devono aggiornare uno dei finger al nuovo nodo) –Chord non è simmetrico (Se un nodo n ha un finger su n non è detto che n ha un finger su n) Non è possibile avvertire i nodi che devono aggiornare i fingers E inoltre necessario far migrare le risorse al nuovo responsabile (il protocollo Chord non gestisce questo problema e lo rimanda allapplicazione).
92
Sistemi P2P avanzati Chord: Join La correttezza dei link al successore basta a garantire la correttezza delle lookup Lazy Join –Inizializza solo il successore –Periodicamente verifica successore e predecessore –Periodicamente (ma meno spesso) rinfresca il contenuto della tavola dei finger
93
Sistemi P2P avanzati Chord: Join e Lookup Cosa succede alla lookup a seguito di operazioni di Join? –Loperazione di Join è completamente terminata -> nessun problema –Loperazione di Join è parzialmente terminata -> la lookup potrebbe essere rallentata –Loperazione di Join è incompleta (puntatori errati oppure le risorse si trovano in una posizione inconsistente rispetto ai link nella rete) -> la lookup potrebbe fallire
94
Sistemi P2P avanzati Vale il seguente lemma: Se al tempo t esiste una path tra x ed y, allora per ogni t>t ci sara una path tra x ed y Per induzione sul tempo. Supponiamo che dopo t il nodo n effettua una join tra p e s due nodi nella path da x a y. Larco tra p ed s non viene toccato dalla join e quindi permane. Supponiamo avvenga una stabilize. Consideriamo il momento in cui il nodo p cambia successore (stabilize di p) da s ad n. Questo avviene perchè p ha contattato s ed s gli ha detto di n. Inoltre p<n<s. x p s y n Chord: Risultati Join
95
Sistemi P2P avanzati s ha saputo di n ad un tempo precedente e questo può essere avvenuto solo perchè s è stato un successore diretto di n (cioè dopo la stabilize di n). Per ipotesi induttiva se esisteva un path tra n ed s, esiste un path tra n ed s in tutti gli istanti successivi. In particolare nellistante in cui p cambia il successore. Essendo p<n<s il cambiamento del successore di p non influisce in alcun modo sulla path tra p ed s. Inoltre anche dopo il cambiamento esiste una path tra p ed s. x p s y n Chord: Risultati Join
96
Sistemi P2P avanzati Tutti le path tra x ed y, che utilizzavano larco tra p ed s, erano tali che p ed s erano interni ad x y. Ma tutti i nodi aggiunti allarco p s sono interni a p s ed a maggior ragione interni ad x y. Se un nodo è capace di risolvere una query, sarà sempre capace di farlo in futuro Ad un tempo prefissato dopo lultima join i puntatori al successore saranno corretti per tutti i nodi Chord: Risultati Join
97
Sistemi P2P avanzati E possibile mostrare il seguente teorema: Se ogni operazione di join è alternata con quella di stabilizzazione, allora dopo un fissato tempo dallultima join i puntatori al successore formano un ciclo su tutti i nodi della rete. Chord: Risultati Join
98
Sistemi P2P avanzati E possibile mostrare il seguente teorema: Se abbiamo una rete stabile con N nodi ed effettuiamo N join alla rete, e se tutti i puntatori ai successori sono corretti, allora il Lookup di una risorsa avrà necessità di O(log N) hops con alta probabilità. In altre parole se il tempo richiesto per aggiustare tutti i fingers è minore del tempo richiesto dalla rete per raddoppiare in taglia allora la lookup non viene asintoticamente rallentata. Chord: Risultati Join
99
Sistemi P2P avanzati Dim Se utilizziamo i vecchi finger arriviamo in O(log N) hops al vecchio predecessore della risorsa. Con alta probabilità tra due vecchi nodi ci saranno al più O(log N) nuovi nodi. Se i successori dei nuovi nodi sono corretti, in al più O(log N) passi la risorsa sarà raggiunta. Chord: Risultati Join
100
Sistemi P2P avanzati Chord: Failure and Replication Abbiamo detto che la correttezza del routing è garantita dal fatto che ogni nodo conosce in ogni istante il proprio successore Tuttavia questa invariante può essere compromessa dal fatto che i nodi possono cadere Per migliorare la robustezza del protocollo ogni nodo utilizza una lista di r successori (di solito r=log N) Quando il successore di un nodo n cade, n sostituisce tale successore con la seconda entry nella tabella dei successori e successivamente provvede a ricercare il successore r-esimo. In particolare, è possibile rompere il sistema solo se tutti e r i successori di un nodo cadono quasi contemporaneamente
101
Sistemi P2P avanzati Chord: Failure and Replication Assumiamo che r sia la probabilità che un nodo cade allistante t. La probabilità che r successori cadono contemporaneamente è p r La presenza della tabella dei successori richiede alcuni cambiamenti nel protocollo: –La procedura stabilize si deve preoccupare di mantenere corretta la tabella dei successori Il nodo n copia la tabella dei successori dal suo successore s ignora lultima entry e aggiunge in testa a tale tabella il proprio successore s Quando qualche successore fallisce il nodo n contatta il primo successore vivo s e successivamente ripristina la tabella dei successori utilizzando la tabella di s
102
Sistemi P2P avanzati Chord: Failure and Replication –E possibile inoltre modificare la procedura closest preceding finger in modo da valutare oltre alla tabella dei fingers anche i successori. (si ottengono miglioramenti ma il costo della lookup rimane O(log N)) –Inoltre è necessario modificare la procedura lookup (findsuccessor) che fallisce se incontra un successore down (la procedura infatti viene rilanciata dopo un breve intervallo di tempo, che dovrebbe servire a ripristinare il link al successore)
103
Sistemi P2P avanzati Chord: Failure and Replication Risultati Assumiamo che la lista dei successori è lunga r= (log N) Teorema –In una rete inizialmente stabile, se assumiamo che ciascun nodo cade con probabilità ½, allora la lookup sarà corretta Dim Affinché la lookup sia corretta è necessario che lanello non sia rotto. Lanello si rompe con probabilità (1/2) r =1/N k se r= k log N Altamente improbabil e
104
Sistemi P2P avanzati Chord: Failure and Replication Risultati Assumiamo che la lista dei successori è lunga r= (log N) Teorema –In una rete inizialmente stabile, se assumiamo che ciascun nodo cade con probabilità ½, allora la lookup impiega O(log N) msg Dim sketch Se ogni nodo è caduto con probabilità 1/2, ogni due link ne funziona almeno 1, Se il finger di cui abbiamo necessità è caduto possiamo usare un finger più corto: invece di dimezzare la distanza la riduciamo a circa ¾ della distanza precedente. Ma log 4/3 N = O(log N).
105
Sistemi P2P avanzati Chord: Failure and Replication Consisten Hashing –Il fatto che lassegnazione degli ID avviene utilizzando consistent hashing, non è possibile per un avversario creare dei nodi in una posizione prefissata del ring. Non è possibile appropriarsi di una risorsa Non è possibile rompere lanello utilizzando r nodi fittizi Siccome abbiamo visto che gli r successori di un nodo n cadono contemporaneamente con bassissima probabilità è naturale pensare a questi nodi per repliche delle risorse gestite dal nodo n. –Altre possibilità Diverse funzioni hash Repliche in posizioni speculari (Es r repliche) (ID, ID+2 m /r mod 2 m, ID+2 2 m /r mod 2 m,, ID+(r-1) 2 m /r mod 2 m )
106
Sistemi P2P avanzati Chord: Leave Siccome il protocollo descritto finora è corretto anche in caso di fallimenti per i nodi potremmo gestire la leave come un fallimento, tuttavia è preferibile, per migliorare le prestazioni del sistema, adottare alcuni accorgimenti, quando un nodo si disconnette volontariamente dalla rete –Il nodo che lascia la rete trasferisce le proprie risorse al suo successore Notifica ai propri vicini (predecessore e successore) che sta uscendo dal sistema. In particolare comunica il predecessore al suo successore e il successore al suo predecessore, in questo modo i due vicini possono connettersi senza utilizzare la stabilize/notify
107
Sistemi P2P avanzati Chord: Realistic Analysis Il sistema appena descritto è un sistema dinamico particolarmente difficile da analizzare analiticamente (senza esemplificazioni). In particolare tutte le dimostrazioni analizzate partono da una configurazione stabile, tuttavia: a Chord ring will never be in a stable state; instead, joins and departures will occur continuously, interleaved with the stabilization algorithm. The ring will not have time to stabilize before new changes happen.
108
Sistemi P2P avanzati Chord: Valutazione lookup veloci in sistemi di grandi dimensioni Variazione contenuta del costo di lookup Robusto rispetto a molti fallimenti Gli esperimenti confermano i risultati teorici
109
Sistemi P2P avanzati il costo è O(log N) come previsto dalla teoria la costante è 1/2 Number of Nodes Average Messages per Lookup Chord: Valutazione
110
Sistemi P2P avanzati Chord: Incorporating Geography Alcune tecniche: –Geographic Layout: Usare un algoritmo per attribuire le chiavi ai nodi in modo che nodi fisicamente vicini abbiano identificatori simili. (Controindicazioni: Bilanciamento del carico, Routing Hot Spots e Sicurezza); –PNS(Proximity neighbor selection) La scelta dei vicini non dipende solo dalla distanza fra i nodi sulla rete di overlay ma è influenzata anche dalle distanze reali. –PRS(Proximity routing selection) Durante la ricerca lalgoritmo di routing non sceglie il successivo step basandosi solo sulla distanza fra i nodi nella rete di overlay; considera anche la distanza effettiva fra i nodi (in termini di RTT);
111
Sistemi P2P avanzati Chord: Incorporating Geography Osservazioni: –PRS e PNS sono i sistemi più usati,(sembra che PNS offre prestazioni migliori di PRS); –PRS e PNS partono dal presupposto che è possibile conoscere il RTT con ogni altro nodo (non è fattibile, ma è possibile ottenere delle stime a un costo relativamente basso);
112
Sistemi P2P avanzati Incorporating geography: Chord Chord e PRS: Lalgoritmo di routing non va semplicemente al nodo più vicino alla destinazione sulla rete di overlay, ma ad esempio potrebbe considerare i due nodi più vicini e scegliere quello con RTT minore; Le path-lenght si allungano ma rimangono O(log N); In particolare: ad ogni passo la distanza fra il nodo destinazione e il nodo corrente si riduce da a 3/4 Nel caso peggiore la path lenght è quindi log 4/3 2 m. 000 101 100 011 010 001 110 111 110
113
Sistemi P2P avanzati Incorporating geography: Chord Chord e PNS: La finger table viene riempita considerando anche il RTT: li-esimo finger del nodo n non è semplicemente il responsabile della chiave n+2 i-1 ma è il nodo più vicino(RTT) fra i nodi responsabili delle chiavi nellintervallo (n+2 i-2, n+2 i-1 ]. Anche in questo caso le path-lenght si allungano ma rimangono O(log N) (dimostrazione analoga alla precedente). Anche usando simultaneamente PRS e PNS la lunghezza asintotica delle path non varia; 000 101 100 011 010 001 110 111
114
Sistemi P2P avanzati Conclusioni A differenza dei sistemi precedenti, Chord si adatta ad ambienti dinamici (tipici dei sistemi P2P) Based on theoretical work (Consistent Hashing) Proximity-based routing Chord è uniforme (routing greedy è ottimale) Chord non è simmetrico –Alcune procedure causano utilizzo di banda anche se non ci sono cambiamenti nella rete La Join costa O(log 2 N)
115
Sistemi P2P avanzati Fine Lezione 3
116
Sistemi P2P avanzati Lezione 4 Consisten Hashing Altri sistemi P2P uniformi F-Chord :-)
117
Sistemi P2P avanzati Partendo dalla figura, descrivere la procedura Join Descrivere le varie tecniche di replicazione e analizzarne vantaggi e svantaggi Descrivere PNS e PRS In una rete inizialmente stabile, se assumiamo che ciascun nodo cade con probabilità ½, allora la lookup impiega (N) (½ log N) (m) (nessuna prec.) Facciamo un piccolo test a c b
118
Sistemi P2P avanzati Outline Consistent Hashing -Definizione -Desiderata -Proprietà -Esempio -Altri Sistemi -Tapestry -CAN -Viceroy F-Chord –Idea –P2P uniformi –Risultati
119
Sistemi P2P avanzati Una chiave (risorsa) è memorizzata nel primo nodo che segue in senso orario 32 90 123 20 5 ID a 7-bit 0 IP=198.10.10.1 101 60 Chiave=LetItBe Consistent Hashing [Karger et al 97]
120
Sistemi P2P avanzati Consistent Hashing [Karger et al 97]
121
Sistemi P2P avanzati Consistent Hashing [Karger et al 97] Nasce come una tecnica per replicare i dati nei sistemi C/S Problema: memorizzare una copia dei dati messi a disposizione dal Server su un pool di Client –Load balancing –Fast recovery Le funzioni Hash mappano chiavi (risorse) in interi.
122
Sistemi P2P avanzati Consistent Hashing [Karger et al 97] Con N Client una possibile funzione è x -> ax+b (mod N) Cosa accade se varia N? –Buona parte dei dati va riposizionata Se la usassimo in un sistema P2P? –N varia continuamente –nessuno sa precisamente quanto vale N
123
Sistemi P2P avanzati x -> ax+b (mod N) In particolare se varia N: –è assicurato un bilanciamento sul numero di dati per posizione –molti dati devono cambiare posizione –il numero di posizioni che un dato può potenzialmente raggiungere non è limitato Consistent Hashing [Karger et al 97]
124
Sistemi P2P avanzati Consistent Hashing [Karger et al 97] Desiderata – Vogliamo che quando N varia (cioè un nodo entra o esce dal sistema) la quantità di dati che viene rimappata nel sistema è bassa le posizioni in cui un generico dato (risorsa) è mappato sono limitate i dati vengono assegnati in maniera bilanciata su tutti i nodi
125
Sistemi P2P avanzati Consistent Hashing [Karger et al 97] In altre parole, per definizione un Consistent Hashing deve godere di opportune proprietà: Bilanciamento Monotonicità Spread Carico
126
Sistemi P2P avanzati Sia I linsieme delle risorse e B linsieme delle possibili posizioni (I = | I |). Ovviamente le possibili configurazioni del sistema sono 2 B Quello che cerchiamo è una funzione f:2 B I -> B Se V è una configurazione (V 2 B ) è ovvio che f(V,id) V, per qualsiasi id Consistent Hashing [Karger et al 97]
127
Sistemi P2P avanzati Bilanciamento: Per ogni sottoinsieme V di posizioni (nodi) ed I dati, il numero di dati per ogni posizione è O(I/|V|) con alta probabilità. Monotonicità: Se al variare di N le posizioni (i nodi) disponibili passano da V 1 a V 2 con V 1 V 2, la migrazione dei dati deve avvenire solo verso posizioni appartenenti a V 2 \V 1, ma non a V 1. Se V 1 V 2, f(V 2, i) V 1 allora f(V 1, i) = f(V 2, i) Consistent Hashing [Karger et al 97] I dati si devono muovere solo se è necessario
128
Sistemi P2P avanzati Spread: Al variare di N, il numero di posizioni che un dato può assumere è limitato. Carico: Al variare di N, il numero di dati che una posizione accoglie è limitato. Consistent Hashing [Karger et al 97]
129
Sistemi P2P avanzati Funzioni Hashing Consistenti esistono ? Siano K(x) ed N(x) due funzioni casuali che hanno come codominio lintervallo [0,1). Definiamo la seguente funzione Hash: Utilizziamo K(x) per mappare le chiavi Utilizziamo N(x) per mappare i nodi F: La chiave i viene memorizzata nel nodo j se la differenza |K(i)-N(j)| è la minima su tutti i nodi j. Consistent Hashing [Karger et al 97]
130
Sistemi P2P avanzati 0 1 F precedentemente definito: Bilanciamento ? Monotonicità ? Spread ? Carico ? Consistent Hashing [Karger et al 97]
131
Sistemi P2P avanzati DHT Routing (Tapestry) Realizzazione dinamica dellalgoritmo di Plaxton et al.(che non si adattava a sistemi dinamici); Supponendo che le chiave è costituita da un intero positivo lalgoritmo di routing corregge a ogni passo un singolo digit alla volta; Per fare ciò un nodo deve avere informazioni sui nodi responsabili dei prefissi della sua chiave; (O(log N) nodi) Il numero di messaggi necessari per fare lookup è O(log N); Lalgoritmo in pratica simula un Ipercubo;
132
Sistemi P2P avanzati DHT: Routing (CAN) I nodi sono mappati su un toro d-dimensionale; A ogni nodo è associato un sottoinsieme di questo spazio d-dimensionale; Ogni nodo mantiene la lista dei nodi responsabili dei sottospazi che confinano con il proprio sottospazio; Ogni nodo ha O(d) vicini (due per ogni dimensione); Il routing avviene in passi, in media ; Da notare che se usiamo d = log N dimensioni abbiamo O(log N) vicini e il routing ha costo:
133
Sistemi P2P avanzati DHT: Routing (Viceroy) I nodi sono mappati su una butterfly e contemporaneamente su un array circolare; Ogni nodo ha un identificatore addizionale chiamato livello; Tre tipi di link: General link: predecessore e successore sullarray circolare (2 link); Level ring: connette i nodi di uno stesso livello (2 link); Butterfly link: realizza la butterfly (2 link); Ogni nodo ha O(1) vicini; Il routing avviene in O(log N) passi in media e O(log 2 N) passi WHP;
134
Sistemi P2P avanzati DHT: Routing (Viceroy)
135
Sistemi P2P avanzati F-Chord: performance metrics Tre parametri per la misura delle performances: –Dimensione della tabella di routing (degree) Memoria utilizzata Misura inoltre il costo per la stabilizzazione della rete successiva a joins/leaves di nodi –Diametro e Lunghezza media delle path Velocità nel reperire i dati
136
Sistemi P2P avanzati Uniform Routing Algorithm Consideriamo un ring di 2 m identificatori, etichettati da 0 a 2 m -1 Sia N=2 m, un algoritmo di routing si dice uniforme se per ogni nodo n, n è connesso con y iff n+z è connesso con y+z (i.e. : tutte le comunicazioni sono simmetriche). –Vantaggi Facili da implementare Lalgoritmo greedy è sempre ottimale Non cè congestione sui nodi –Svantaggi Sono meno potenti (De Bruijn Graph e Neighbor of Neighbor Greedy routing sono più potenti)
137
Sistemi P2P avanzati Asymptotic tradeoff curve 1 1 N -1 O(log N) Chord et al. Totally connected graph Ring O(log N) Diameter Uniform Routing algorithm Non-Uniform Routing algorithm
138
Sistemi P2P avanzati Idea (consideriamo un ring [0,1)) 1-2x=0 x=1/21-x-x 2 =0 x=1/ x x2x2 S 1 =1 S i =(1/2) (i-1) … S d1/n d log 2 N S 1 =1 (1/ ) 2(i-1) S i (1/ ) (i-1) … S d1/n d log N Chord x
139
Sistemi P2P avanzati The Idea(2) Possiamo usare solo i jump x i con i dispari (x, x 3, x 5, x 7, …) 1 x2x2 x xx3x3 x3x3 x2x2 x2x2 x x2x2 d = (1/2)log N = (1/2)log N
140
Sistemi P2P avanzati The Idea(3) Costruiamo un nuovo algoritmo di routing uniforme, basato su una nuova tecnica, in particolare il nuovo schema è basato sui numeri di Fibonacci. Fib(i) denota l i-th numero di Fibonacci. Ricordiamo che dove è il golden ratio and [ ] rappresenta lintero più vicino. 12 4 8 16 32 64 Chord
141
Sistemi P2P avanzati Fib-Chord Formalmente Sia N (Fib(m-1), Fib(m)]. Lo schema usa m-2 jumps (fingers) di taglia Fib(i) per i = 2,3, …, m-1 Fib-Chord –Diametro : –Grado : 123 5 8 13 21 34 55 89 Fib-Chord
142
Sistemi P2P avanzati F-Chord( ) Fib(2i), for i = 1,2, …, (1- )(m-2) Fib(i), for i = 2 (1- )(m-2) +2, …, m-1 F-Chord( ) usa (m-2) jumps F-Chord( ) 2 5 13 34 89 Fib-Chord 1 3 8 21 55 even jumps all jumps [1/2,1]
143
Sistemi P2P avanzati Property of F-Chord [CGHNS04] Grado: F-Chord( ) usa (m-2) jumps Diametro: Theorem For any value of, the diameter of F-Chord( ) is m/2 0.72021 log N Lunghezza media delle path: Theorem The average path length of the F-Chord( ) scheme is bounded by 0.39812 log N + (1- )0.24805 log N
144
Sistemi P2P avanzati F-Chord(1/2) Fib-Chord = F-Chord(1) –Diametro : –Grado : F-Chord(1/2) –Diametro : –Grado : 2 5 13 34 89 Fib-Chord 1 3 8 21 55 F-Chord(1/2)
145
Sistemi P2P avanzati The Lower Bound E possibile mostrare che 1.44042 log N è un bound sulla somma grado e diametro per ogni sistema P2P uniforme con N identificatori. Theorem Let N(,d) denote the maximum number of consecutive identifiers obtainable trough a uniform algorithm using up to jumps (i.e. degree ) and diameter d. For any 0, d 0, it holds that N(,d) Fib( +d+1) F-Chord(1/2) is optimal
146
Sistemi P2P avanzati Average path length Fib-Chord: 0.39812 log N F-Chord(1/2): 0.522145 log N Theorem For each [0.58929,0.69424] the F-Chord( ) schemes improve on Chord in all parameters (number of jumps, diameter, and average path length) Chord is better
147
Sistemi P2P avanzati hops x log n Graphical results Lower is better
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.