Sistemi P2P avanzati Sistemi Peer To Peer (P2P) Avanzati Gennaro Cordasco – – – Laboratorio ISISLAB 2 (L8 a Baronissi)
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
Sistemi P2P avanzati Outline Motivazioni Idea Protocollo Valutazione delle prestazioni: lookup
Sistemi P2P avanzati Chord: Obiettivi Load Balance Decentralization Scalability Availability Flexibility
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
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 ?
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
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?
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
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
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= ID=123 SHA-1
Sistemi P2P avanzati Chord: Identificatori Gli identificatori ottenuti utilizzando Consistent Hashing vengono mappati su un ring circolare modulo 2 m m=
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= nodi risorse
Sistemi P2P avanzati Chord Esempio leave (nodo 14) m= nodi risorse
Sistemi P2P avanzati Chord Esempio join (nodo 26) m= nodi risorse
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= nodi risorse
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= nodi risorse
Sistemi P2P avanzati Simple Key location Il nodo n chiama lookup(id) Il nodo 8 chiama lookup(54)
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 nodi risorse
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= nodi risorse
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= nodi risorse
Sistemi P2P avanzati Tavola dei finger IDResp. 8+1= = = = = =1214 m=6 indiceNod o Successors Predecessor Nodo 1
Sistemi P2P avanzati successor(1)=1 0 successor(2)=3 successor(6)=6 successor(9)=9 successor(10)=13 successor(14)= successor(0)=0
Sistemi P2P avanzati isuccnode isuccnode isuccnode Qualcuno vuol provare a descrivere la tabella di routing del nodo 9? ?? ?? ?? ??
Sistemi P2P avanzati Algoritmo Lookup Il nodo n chiama lookup(id)
Sistemi P2P avanzati isuccnode isuccnode isuccnode
Sistemi P2P avanzati Join e Stabilization Crea Anello Vuoto Join n=N26, n=qualunque nodo attivo Stabilize n=N26 n=N21
Sistemi P2P avanzati Join e Stabilization Altre operazioni periodiche ma utilizzate con frequenza minore sono fix.finger e check.predecessor
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.
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
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
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
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
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.
Sistemi P2P avanzati La Lookup impiega O(log N) hop Lookup(19) 19
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)
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]
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):
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):
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
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
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.
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.
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.
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
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.
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
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,
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 ?
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
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
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
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 Ricapitolando
Sistemi P2P avanzati Fine Lezione 2 Domande??