La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Sistemi P2P Chord: A Scalable Peer-to-Peer Lookup Protocol for Internet Applications Autori: I. Stoica, R. Morris, D. Liben-Nowell, D. R. Karger, M. F.

Presentazioni simili


Presentazione sul tema: "Sistemi P2P Chord: A Scalable Peer-to-Peer Lookup Protocol for Internet Applications Autori: I. Stoica, R. Morris, D. Liben-Nowell, D. R. Karger, M. F."— Transcript della presentazione:

1 Sistemi P2P 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

2 Sistemi P2P Chord: Obiettivi Load Balance Decentralization Scalability Availability Flexibility

3 Sistemi P2P 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

4 Sistemi P2P 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 ?

5 Sistemi P2P 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

6 Sistemi P2P 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?

7 Sistemi P2P 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 Consistent Hashing nelle prossime lezioni

8 Sistemi P2P 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

9 Sistemi P2P 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

10 Sistemi P2P Chord: Identificatori Gli identificatori ottenuti utilizzando Consistent Hashing vengono mappati su un ring circolare modulo 2 m m=

11 Sistemi P2P 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

12 Sistemi P2P Chord Esempio leave (nodo 14) m= nodi risorse

13 Sistemi P2P Chord Esempio join (nodo 26) m= nodi risorse

14 Sistemi P2P 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

15 Sistemi P2P 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

16 Sistemi P2P Simple Key location Il nodo n chiama lookup(id) Il nodo 8 chiama lookup(54)

17 Sistemi P2P 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

18 Sistemi P2P 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 fra i finger cresce esponenzialmente In particolare, il finger i del nodo n connette il nodo al responsabile (successor) della chiave n+2 i-1 m= nodi risorse

19 Sistemi P2P 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

20 Sistemi P2P Tavola dei finger IDResp. 8+1= = = = = =1214 m=6 indiceNod o Successors Predecessor Nodo 1

21 Sistemi P2P successor(1)=1 0 successor(2)=3 successor(6)=6 successor(9)=9 successor(10)=13 successor(14)= successor(0)=0

22 Sistemi P2P isuccnode isuccnode isuccnode Qualcuno vuol provare a descrivere la tabella di routing del nodo 9? ?? ?? ?? ??

23 Sistemi P2P Algoritmo Lookup Il nodo n chiama lookup(id)

24 Sistemi P2P isuccnode isuccnode isuccnode

25 Sistemi P2P Join e Stabilization Crea Anello Vuoto Join n=N26, n=qualunque nodo attivo Stabilize n=N26 n=N21

26 Sistemi P2P Join e Stabilization Altre operazioni periodiche ma utilizzate con frequenza minore sono fix.finger e check.predecessor

27 Sistemi P2P 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.

28 Sistemi P2P 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

29 Sistemi P2P 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

30 Sistemi P2P 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 nel caso peggiore si dimezza n id p f s

31 Sistemi P2P 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 nel caso peggiore 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

32 Sistemi P2P 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.

33 Sistemi P2P La Lookup impiega O(log N) hop Lookup(19) 19

34 Sistemi P2P 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 nellintervallo che va dal nodo al suo successore. Infatti un lemma analogo a quello mostrato in precedenza permette di dimostrare 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)

35 Sistemi P2P 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]

36 Sistemi P2P 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):

37 Sistemi P2P 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):

38 Sistemi P2P 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, Pr[X i =0]=1-p i con 0 < p i < 1. Se allora

39 Sistemi P2P Chernoff Bound Siano X 1, X 2, …,X n prove ripetute indipendenti tali che per 1 i n, Pr[X i =1]=p i, Pr[X i =0]=1-p i con 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

40 Sistemi P2P Chernoff Bound Siano X 1, X 2, …,X n prove ripetute indipendenti tali che per 1 i n, Pr[X i =1]=p i, Pr[X i =0]=1-p i con 0 < p i < 1. Se allora Dim … Poichè le X i sono indipendenti, anche le exp(tX i ) lo sono.

41 Sistemi P2P Chernoff Bound Siano X 1, X 2, …,X n prove ripetute indipendenti tali che per 1 i n, Pr[X i =1]=p i, Pr[X i =0]=1-p i con 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.

42 Sistemi P2P Chernoff Bound Siano X 1, X 2, …,X n prove ripetute indipendenti tali che per 1 i n, Pr[X i =1]=p i,Pr[X i =0]=1-p i con 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.

43 Sistemi P2P Chernoff Bound Siano X 1, X 2, …,X n prove ripetute indipendenti tali che per 1 i n, Pr[X i =1]=p i, Pr[X i =0]=1-p i con 0 < p i < 1. Se allora Dim … Poichè 1+x

44 Sistemi P2P Chernoff Bound Siano X 1, X 2, …,X n prove ripetute indipendenti tali che per 1 i n, Pr[X i =1]=p i,Pr[X i =0]=1-p i con 0 < p i < 1. Se allora Dim … la espressione a destra assume il valore minimo per t=ln(1+δ). Sostituendo otteniamo il Teorema.

45 Sistemi P2P 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

46 Sistemi P2P 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,

47 Sistemi P2P 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 ?

48 Sistemi P2P 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

49 Sistemi P2P 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


Scaricare ppt "Sistemi P2P Chord: A Scalable Peer-to-Peer Lookup Protocol for Internet Applications Autori: I. Stoica, R. Morris, D. Liben-Nowell, D. R. Karger, M. F."

Presentazioni simili


Annunci Google