View
223
Download
2
Category
Tags:
Preview:
Citation preview
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 Berkleyhttp://www.pdos.lcs.mit.edu/chord/
Sistemi P2P
Chord: Obiettivi
• Load Balance• Decentralization• Scalability• Availability• Flexibility
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 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
Sistemi P2P
Chord: Lookup
• Come trovare risorse in un sistema completamente decentralizzato?
il Lookup è il problema fondamentale
Internet
PublisherKey=“LetItBe”
Value=MP3 data
Lookup(“LetItBe”)
N1
N2 N3
N5N4Client ?
Sistemi P2P
Chord: Lookup
• DHTs (Tapestry, Pastry, Chord, CAN,…)
• Qual’è il modo migliore di realizzare il servizio di lookup?
Internet
PublisherKey=“LetItBe”
Value=MP3 data
Lookup(“LetItBe”)
N1
N2 N3
N5N4Client
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 l’ingresso (join) e l’uscita (leave) dei nodi?
• Quale è il miglior algoritimo di routing?
Sistemi P2P
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
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
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=60SHA-1
IP=“198.10.10.1” ID=123SHA-1
Sistemi P2P
Chord: Identificatori
• Gli identificatori ottenuti utilizzando Consistent Hashing vengono mappati su un ring circolare modulo 2m
m=6000000
101000100000
011000
010000
001000
110000
111000
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=61
81014
nodi
risorse
21
243032
4851
5654
3838
42
Sistemi P2P
Chord
• Esempio leave (nodo 14)
m=61
81014
nodi
risorse
21
243032
4851
5654
3838
42
Sistemi P2P
Chord
• Esempio join (nodo 26)
m=61
810
nodi
risorse
21
2430
32
4851
5654
3838
42
26
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=61
810
nodi
risorse
21
2430
32
4851
5654
3838
42
26
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 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=61
810
nodi
risorse
21
2430
32
4851
5654
3838
42
26
Sistemi P2P
Simple Key location
Il nodo n chiama lookup(id)
Il nodo 8 chiama lookup(54)
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 Routing1
810
nodi
risorse
21
24
51
5654
3838
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+2i-1
m=61
810
nodi
risorse
21
2430
32
4851
5654
3838
42
26
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=61
810
nodi
risorse
21
2430
32
4851
5654
3838
42
26
Sistemi P2P
Tavola dei finger
ID Resp.
8+1=9 14
8+2=11 14
8+8=16 21
8+16=24 24
8+32=40 42
8+4=12 14
m=6
indice Nodo
1 14
2 21
4 32
5 38
6 42
3 24
Successors
Predecessor
Nodo 1
Sistemi P2P
01
2
3
4
15
14
13
11
12
89
10
7
6
5
141
210
successor(1)=1
0
successor(2)=3
successor(6)=6
successor(9)=9
successor(10)=13
successor(14)=15
6
9
successor(0)=0
Sistemi P2P
01
2
3
4
15
14
13
11
12
89
10
7
6
5
141
210
0
6
9
i succ
node
1 2 3
2 3 3
3 5 6
4 9 9
i succ
node
1 10 13
2 11 13
3 13 13
4 1 1
i succ
node
1 14 15
2 15 15
3 1 1
4 5 6
Qualcuno vuol provare a descrivere la tabella di routing del nodo 9?
? ?
? ?? ?? ?
Sistemi P2P
Algoritmo LookupIl nodo n chiama
lookup(id)
Sistemi P2P
01
2
3
4
15
14
13
11
12
89
10
7
6
5
14
i succ
node
1 2 3
2 3 3
3 5 6
4 9 9
i succ
node
1 10 13
2 11 13
3 13 13
4 1 1
i succ
node
1 14 15
2 15 15
3 1 1
4 5 6
Sistemi P2P
Join e StabilizationCrea Anello Vuoto
Join n=N26,
n’=qualunque nodo attivo
Stabilizen=N26n=N21
Sistemi P2P
Join e Stabilization
• Altre operazioni periodiche ma utilizzate con frequenza minore sono fix.finger e check.predecessor
Sistemi P2P
Chord: Risultati
• LemmaDato 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.
Sistemi P2P
Chord: Risultati• Teorema
Il numero dei nodi che deve essere contattato per risolvere una lookup è O(log N) w.h.p.,
DimSupponiamo che il nodo n deve
risolvere una lookup per l’id kSiano p e s, rispettivamente, il
predecessore e il successore dell’ID k
Se np e ns, n non è in grado di risolvere da solo la query
n
k
p
s
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+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
n
id
p
f
s
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 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
n
id
p
f
s
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 dimezzaLa 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
n
id
p
f
s
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ù 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.
Sistemi P2P
La Lookup impiega O(log N) hop
32
10
5
20
110
99
80
60
Lookup(19)
19
Sistemi P2P
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)
Sistemi P2P
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[Xa]
Sistemi P2P
Disuguaglianza di MarcovDisuguaglianza di MarcovSia X una variabile casuale a valori positivi,
allora per ogni a>0:E[X] a Pr[Xa]
DimProviamo per una variabile casuale discreta che
assume valori da 1 a k (è il nostro caso):
k
ai
ixax ]Pr[]Pr[
k
ai
a
i
k
i
ixiixiixixE ]Pr[]Pr[]Pr[][1
11
Sistemi P2P
Disuguaglianza di MarcovDisuguaglianza di MarcovSia X una variabile casuale a valori positivi,
allora per ogni a>0:E[X] a Pr[Xa]
DimProviamo per una variabile casuale discreta che
assume valori da 1 a k (è il nostro caso):
k
ai
k
ai
k
ai
ixaixaixixE ]Pr[]Pr[]Pr[][
]Pr[][ axaxE
Sistemi P2P
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.
DimAbbiamo necessita di alcuni risultati intermedi:– Disuguaglianza di Marcov– Chernoff BoundSiano 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
]Pr[][ axaxE
n
i i
n
ii pXEXX
11
0,][,
)1()1(])1(Pr[
eX
Sistemi P2P
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
per ogni reale positivo t.Se applichiamo la disuguaglianza di Marcov a destra si ottiene
n
i i
n
ii pXEXX
11
0,][,
)1()1(])1(Pr[
eX
)])1(exp()Pr[exp(])1(Pr[ ttXX
))1(exp(
)][exp(])1(Pr[
t
tXEX
]Pr[][ axaxE
a
xEax
][]Pr[
exp(x)=ex
Sistemi P2P
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…
n
i i
n
ii pXEXX
11
0,][,
)1()1(])1(Pr[
eX
))1(exp(
)][exp(])1(Pr[
t
tXEX
n
i i
n
ii
n
i i tXEtXEXtEtXE1
11
)][exp()]exp([)][exp()][exp(
Poichè le Xi sono indipendenti, anche le exp(tXi) lo sono.
Sistemi P2P
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.
n
i i
n
ii pXEXX
11
0,][,
)1()1(])1(Pr[
eX
))1(exp(
)][exp(])1(Pr[
t
tXEX
n
i itXEtXE1
)][exp()][exp(
Sistemi P2P
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.
n
i i
n
ii pXEXX
11
0,][,
)1()1(])1(Pr[
eX
))1(exp(
)][exp(])1(Pr[
t
tXEX
n
i
ti
n
i it
i
n
i i eppeptXEtXE111
))1(1()1()][exp()][exp(
Sistemi P2P
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…
Poichè 1+x<ex
n
i
ti eptXE
1))1(1()][exp(
n
i i
n
ii pXEXX
11
0,][,
)1()1(])1(Pr[
eX
))1(exp(
)][exp(])1(Pr[
t
tXEX
))1(exp())1(exp())1(exp())1(1(111
tn
i
ti
n
i
ti
n
i
ti eepepep
Sistemi P2P
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 espressione a destra assume il valore minimo per t=ln(1+δ). Sostituendo otteniamo il Teorema.
n
i i
n
ii pXEXX
11
0,][,
)1()1(])1(Pr[
eX
))1(exp(
))1(exp(])1(Pr[
t
eX
t
Sistemi P2P
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.
DimAbbiamo necessita di alcuni risultati intermedi:– Disuguaglianza di Marcov– Chernoff BoundDefiniamo
)1()1(])1(Pr[
eX
)1()1(),(
eF
Sistemi P2P
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,
)1()1(),(
eF
)1(
)1(
1
)1( )1()1()1(),(
eee
F
)1(2),( F
Sistemi P2P
Chord: Risultati
• LemmaDato 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 ?
)1(2),( F
Sistemi P2P
Chord: Risultati
• LemmaDato 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.
)1(2),( F
2m/N
Sistemi P2P
Chord: Risultati
• LemmaDato 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
kNF
1),(
)1(2),( F
2m/N
)1(2),( F Altamente improbabil
e
Recommended