La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Autori: I. Stoica, R. Morris, D. Liben-Nowell, D. R. Karger, M. F

Presentazioni simili


Presentazione sul tema: "Autori: I. Stoica, R. Morris, D. Liben-Nowell, D. R. Karger, M. F"— Transcript della presentazione:

1 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 Chord: Obiettivi Load Balance Decentralization Scalability
Availability Flexibility

3 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 l’operazione 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 Chord: Lookup Come trovare risorse in un sistema completamente decentralizzato? N2 N3 N1 Publisher Key=“LetItBe” Value=MP3 data Internet N5 ? N4 Client Lookup(“LetItBe”) il Lookup è il problema fondamentale

5 Chord: Lookup N2 N3 N1 N5 N4 DHTs (Tapestry, Pastry, Chord, CAN,…)
Qual’è il modo migliore di realizzare il servizio di lookup? N2 N3 N1 Publisher Key=“LetItBe” Value=MP3 data Internet N5 N4 Client Lookup(“LetItBe”)

6 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 l’ingresso (join) e l’uscita (leave) dei nodi? Quale è il miglior algoritimo di routing?

7 Chord: Consistent Hashing
Fondamentalmente, l’architettura di Chord è basata su un ring di 2m identificatori [0, 2m-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 l’N+1th nodo nel sistema circa O(K/N) chiavi (risorse) devono cambiare posizione) Discuteremo in dettaglio Consistent Hashing nelle prossime lezioni

8 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 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 Chord: Identificatori
Gli identificatori ottenuti utilizzando Consistent Hashing vengono mappati su un ring circolare modulo 2m 000000 m=6 111000 001000 110000 010000 101000 011000 100000

11 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 nodi 1 risorse 8 56 10 54 14 51 48 21 42 38 24 38 30 32

12 Chord Esempio leave (nodo 14) 1 8 56 10 54 14 51 48 21 42 38 24 38 30
nodi 1 risorse 8 56 10 54 14 51 48 21 42 38 24 38 30 32

13 Chord Esempio join (nodo 26) 1 8 56 10 54 51 48 21 42 38 24 38 26 30
nodi 1 risorse 8 56 10 54 51 48 21 42 38 24 38 26 30 32

14 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 nodi 1 risorse 8 56 10 54 51 48 21 42 38 24 38 26 30 32

15 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 l’anello 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 nodi 1 risorse 8 56 10 54 51 48 21 42 38 24 38 26 30 32

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

17 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 1 risorse 8 56 10 54 51 21 38 24 38

18 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+2i-1 m=6 nodi 1 risorse 8 56 10 54 51 48 21 42 38 24 38 26 30 32

19 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 nodi 1 risorse 8 56 10 54 51 48 21 42 38 24 38 26 30 32

20 Tavola dei finger m=6 Successors Predecessor Nodo 1 indice Nodo 1 14 2
21 4 32 5 38 6 42 3 24 ID Resp. 8+1=9 14 8+2=11 8+8=16 21 8+16=24 24 8+32=40 42 8+4=12 Predecessor Nodo 1 m=6

21 successor(0)=0 1 14 successor(1)=1 15 1 successor(14)=15 2 successor(2)=3 14 10 2 13 3 12 4 5 11 6 10 successor(6)=6 successor(10)=13 6 7 9 8 successor(9)=9 9

22 Qualcuno vuol provare a descrivere la tabella di routing del nodo 9?
1 14 15 1 i succ node 1 2 3 5 6 4 9 2 14 10 i succ node 1 14 15 2 3 4 5 6 2 13 3 Qualcuno vuol provare a descrivere la tabella di routing del nodo 9? 12 4 i succ node 1 10 13 2 11 3 4 5 11 ? ? ? ? 6 10 ? ? ? ? 6 7 9 8 9

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

24 14 15 1 2 14 i succ node 1 14 15 2 3 4 5 6 i succ node 1 2 3 5 6 4 9 13 3 12 4 i succ node 1 10 13 2 11 3 4 5 11 6 10 7 9 8

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

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

27 Chord: Risultati Lemma
Dato un qualunque intervallo di ampiezza 2m/N, il numero di ID di nodi atteso in questo intervallo è 1 e O(log N) w.h.p.

28 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 l’id k Siano p e s, rispettivamente, il predecessore e il successore dell’ID k Se np e ns, n non è in grado di risolvere da solo la query p n k s

29 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+2i-1, n+2i) Poiché tale intervallo contiene almeno un nodo (p) il nodo n contattera l’i-esimo finger f. Ovviamente tale nodo, ha ID minore o uguale di p. Per definizione di finger la distanza fra n e f è almeno 2i-1 f p n id s

30 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 2i-1 Inoltre f e p sono entrambi nell’intervallo [n+2i-1, n+2i), quindi la loro distanza è al più 2i-1 In altre parole, f è più vicino a p che a n, e quindi ad ogni hop la distanza nel caso peggiore si dimezza f p n id s

31 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 è 2m-1, poiché tale distanza ad ogni hop si dimezza, in m hop siamo in grado di eseguire qualunque lookup f p n id s

32 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ù 2m / 2 logN = 2m/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 La Lookup impiega O(log N) hop
5 10 110 20 19 99 32 Lookup(19) 80 60

34 Chord: Risultati Abbiamo detto che i nodi di Chord mantengono O(log N) informazioni relative ad altri nodi, d’altra 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 nell’intervallo 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 2m/N2 Abbiamo detto che il finger i del nodo n cade nel successore dell’ID n+2i-1 Di conseguenza, per ogni i ≤ m - 2log N +1, il responsabile dell’ID n+2i-1 ≤ n+ 2m/N2 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 Chord: Risultati Lemma
Dato un qualunque intervallo di ampiezza 2m/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 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 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 Chord: Risultati Lemma
Dato un qualunque intervallo di ampiezza 2m/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 X1, X2, …,Xn prove ripetute indipendenti tali che per ≤ i ≤ n, Pr[Xi=1]=pi, Pr[Xi=0]=1-pi con 0 < pi < 1. Se allora

39 Chernoff Bound per ogni reale positivo t.
Siano X1, X2, …,Xn prove ripetute indipendenti tali che per 1 ≤ i ≤ n, Pr[Xi=1]=pi, Pr[Xi=0]=1-pi con 0 < pi < 1. Se allora Dim per ogni reale positivo t. Se applichiamo la disuguaglianza di Marcov a destra si ottiene exp(x)=ex

40 Chernoff Bound Chernoff Bound
Siano X1, X2, …,Xn prove ripetute indipendenti tali che per ≤ i ≤ n, Pr[Xi=1]=pi, Pr[Xi=0]=1-pi con 0 < pi < 1. Se allora Dim Poichè le Xi sono indipendenti, anche le exp(tXi) lo sono.

41 Chernoff Bound Chernoff Bound
Siano X1, X2, …,Xn prove ripetute indipendenti tali che per ≤ i ≤ n, Pr[Xi=1]=pi, Pr[Xi=0]=1-pi con 0 < pi < 1.. Se allora Dim La variabile exp(tXi) assume valore et con probabilità pi e 1 con probabilità 1-pi.

42 Chernoff Bound Chernoff Bound …
Siano X1, X2, …,Xn prove ripetute indipendenti tali che per 1 ≤ i ≤ n, Pr[Xi=1]=pi ,Pr[Xi=0]=1-pi con 0 < pi < 1. Se allora Dim La variabile exp(tXi) assume valore et con probabilità pi e 1 con probabilità 1-pi.

43 Chernoff Bound Chernoff Bound
Siano X1, X2, …,Xn prove ripetute indipendenti tali che per ≤ i ≤ n, Pr[Xi=1]=pi, Pr[Xi=0]=1-pi con 0 < pi < 1. Se allora Dim Poichè 1+x<ex

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

45 Chord: Risultati Lemma
Dato un qualunque intervallo di ampiezza 2m/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 Chord: Risultati Lemma
Dato un qualunque intervallo di ampiezza 2m/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 Chord: Risultati Lemma
Dato un qualunque intervallo di ampiezza 2m/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 Chord: Risultati Lemma
Dato un qualunque intervallo di ampiezza 2m/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 Yi il numero di palline cadute nell’i-esimo contenitore. Siamo in presenza di prove ripetute indipendenti. La probabilità di successo pi=1/N. La media risulta banalmente 1. 2m/N

49 Altamente improbabile
Chord: Risultati Lemma Dato un qualunque intervallo di ampiezza 2m/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×log2 N è limitata dalla relazione Con δ = k × log2N -1. Sostituendo otteniamo Altamente improbabile 2m/N


Scaricare ppt "Autori: I. Stoica, R. Morris, D. Liben-Nowell, D. R. Karger, M. F"

Presentazioni simili


Annunci Google