Sistemi P2P Chernoff Bound Siano X 1, X 2, …,X n prove ripetute indipendenti tali che per 1 i n,...
-
Upload
abramo-floris -
Category
Documents
-
view
216 -
download
2
Transcript of Sistemi P2P Chernoff Bound Siano X 1, X 2, …,X n prove ripetute indipendenti tali che per 1 i n,...
Sistemi P2P
• 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
Inoltre se >2e-1 4,43, allora
n
i i
n
ii pXEXX
11
0,][,
)1()1(])1(Pr[
eX
)1(2),( F
Ancora esercizi!!!
Sistemi P2P
• Abbiamo una roulette (Americana) (38 settori) proviamo ad effettuare 380 lanci:– Quale è la probabilità di beccare lo 0 almeno 41 volte?– Quanto vale ?
(100) (10) (600) (nessuna delle precedenti)
– Quanto vale ? (2000)(3)(1)(1000)(nessuna delle precedenti)– Quale formula applicare?– Se invece dello 0 consideriamo 0 e 00 almeno 41 volte, cambia qualcosa?– E se effettuiamo 3800 lanci quale è la probabilità di beccare lo 0 401 volte?
Ancora esercizi!!!
Sistemi P2P
Dal punto di vista topologico• Consideriamo una rete P2P come un
grafo G=(V,E), dove V è l’insieme dei nodi nel sistema e E rappresenta l’insieme 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 l’average path lenght (APL), vale
a dire, la distanza media fra due nodi nel grafo.
Condizioni necessarie ma non sufficienti
Sistemi P2P
Es. Chord• Consideriamo un anello con n=2b
nodi;• Ogni nodo x ha un etichetta a b bit;• I vicini del nodo x sono i nodi (x+2i)
mod 2b i = 0,1,…,b-1;
jump
000
101
100
011
010
001
110
111
b=3
Sistemi P2P
Es. Chord
• Quanto valgono:– grado?– diametro?– average path lenght?
000
101
100
011
010
001
110
111
b=3
Il grado è b = log n
Sistemi P2P
Es. Chord
• Dati due nodi x e y la loro distanza d(x,y) è uguale al numero di “1” che ci sono nella stringa binaria (y-x) mod 2b.
• Infatti i jump necessari per passare dal nodo x al nodo y sono quelli relativi alla posizione degli “1” nella stringa binaria (y-x) mod 2b.
000
101
100
011
010
001
110
111
b=3
Sistemi P2P
Es. Chord
• Calcoliamo la distanza tra il nodo 3 e il nodo 6:– (6-3) mod 8 = 3 = 011 (un jump da 2 e uno da 1).
• Calcoliamo la distanza tra il nodo 6 e il nodo 3:– (3-6) mod 8 = 5 = 101 (un jump da 4 e uno da 1).
000
101
100
011
010
001
110
111
b=3
d(x,y) può essere diverso da d(y,x)
Chord non è simmetrico
Il diametro è b = log n
Sistemi P2P
grado
diametro
1
1
n -1
n -1
O(log n)
O(log n)
Chord e altriGrafo
completo
Anello
n è il numero dei peer;
Sistemi P2P
Es. Chord
• Quanto vale l’average path lenght?
000
101
100
011
010
001
110
111
b=3
2
,
),(
n
yxd
APL Nyx
N denota l’insieme dei
nodi
Sistemi P2P
Sistemi P2P uniformi
• Denotiamo con Jx,i l’iesimo jump del nodo x;
• Un sistema P2P viene detto uniforme, se per ogni coppia di nodi x e y, si ha Jx,i = Jy,i i =1,2,…,k.
• Chord è uniforme?• APL sistemi uniformi:
n
xad
n
xadn
n
yxd
APL NxNxNyx
),(),(),(
22
,
Si
k=gradol=diametro
a è un generico nodo
N
Per semplicità consideriamo un sistema Chord
like
Sistemi P2P
Sistemi P2P uniformi• Vantaggi:
– Facili da implementare e da analizzare;– Algoritmo di routing semplice (greedy);– Routing locale, la procedura di lookup interessa solo i
nodi che si trovano fra sorgente e destinazione; – Non c’è congestione sui nodi, vale a dire il traffico
generato dai messaggi di lookup è più o meno uguale per tutti i nodi.
– Fast bootstrap:• Poiché tutti i nodi utilizzano gli stessi jump, è possibile
utilizzare la tabella di routing del proprio predecessore per velocizzare notevolmente l’operazione di join;
• Svantaggi:– Sfortunatamente non sono gli algoritmi più efficienti.
Lo vediamo fra un pò
Sistemi P2P
Es. Chord• Quanto vale
l’average path lenght?
• Scegliamo come nodo sorgente il nodo a=00…0;
• La distanza fra a e il generico nodo x è uguale al numero di bit a 1 nella codifica binaria di x;
000
101
100
011
010
001
110
111
b=3n
xadAPL Nx
),(
a
00…0
00…1
…
11…0
11…1
2
log
2
22
),(nb
n
b
n
xadAPL
b
Nx
Sistemi P2P
Altre DHT?
Sistemi P2P
DHT Routing (Tapestry)
• Realizzazione dinamica dell’algoritmo di Plaxton et al.(che non si adattava a sistemi dinamici);
• Supponendo che le chiave è costituita da un intero positivo l’algoritmo 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);
• L’algoritmo in pratica simula un Ipercubo;
Sistemi P2P
DHT Routing (Tapestry)
• Tabella di routing (base k=4, digit d=4)
Consideriamo il nodo x con id (x1, x2, x3, x4):(1+x1, *, *, *) (x1, 1+x2, *, *) (x1, x2,1+x3, *) (x1, x2, x3, 1+x4)
(2+x1, *, *, *) (x1, 2+x2, *, *) (x1, x2, 2+x3, *) (x1, x2, x3, 2+x4)
(3+x1, *, *, *) (x1, 3+x2, *, *) (x1, x2, 3+x3, *) (x1, x2, x3, 3+x4)
(in totale sono k-1 d nodi -- n=dk -> d=logk n)
• Es. tabella di routing (1323 base 4)(2, 1, 3, 0) (1, 0, 2, 3) (1, 3, 3, 2) (1, 3, 2, 0)
(3, 1, 2, 2) (1, 1, 1, 3) (1, 3, 0, 1) (1, 3, 2, 1)
(0, 3, 2, 1) (1, 2, 1, 2) (1, 3, 1, 1) (1, 3, 2, 2)
Sistemi P2P
DHT Routing (Tapestry)
• Es. tabella di routing (1323 base 4)(2, 1, 3, 0) (1, 0, 2, 3) (1, 3, 3, 2) (1, 3, 2, 0)
(3, 1, 2, 2) (1, 1, 1, 3) (1, 3, 0, 1) (1, 3, 2, 1)
(0, 3, 2, 1) (1, 2, 1, 2) (1, 3, 1, 1) (1, 3, 2, 2)
• Supponiamo che il nodo 1323 deve risolvere la query per il nodo 1333 … siccome i primi due digit coincidono (si utlizza la terza colonna) … la query viene inoltrata al nodo 1332… che avrà un link al nodo 1333 (nella sua quarta colonna).
• Grado (k-1) logk n
• Diametro logk n
(2, 2, 2 ,1) (1, 0, 3, 3) (1, 3, 0, 2) (1, 3, 3, 0)(3, 2, 3, 0) (1, 1, 3, 3) (1, 3, 1, 1) (1, 3, 3, 1)(0, 2, 2, 3) (1, 2, 0, 2) (1, 3, 2, 1) (1, 3, 3, 3)
Sistemi P2P
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;
• Grado: 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:
)(log)2*(log)2*(log)*(loglog
log
1
loglog
1log
1
NONONONNON
NNN N
)(1
ddNO dNd1
4
Sistemi P2P
DHT: Routing (CAN)
• Join
• Al nuovo nodo viene assegnato un punto (random) nello spazio d dimensionale.
• La zona viene divisa in due :
• Una parte viene gestita dal nuovo nodo
• La rimanente dal vecchio gestore.
•Leave
•La zona gestita dal nodo che lascia la rete viene passata a un suo vicino e se è possibile le zone vengono raggruppate di nuovo
• problema: frammentazione delle zone
Sistemi P2P
Dall’Ipercubo alla Butterfly
• IpercuboUn nodo u è connesso con tutti i nodi che differiscono di un solo bit da u
Nodi = N=2r
Archi = r 2r-1
Bisezione = N/2Diametro = log N
• Butterfly (r dimensioni) 2r righe e r+1 colonneNodo u =(w,i) w (r bit) =riga, i = colonna (da 0 a r)u=(w,i) e u’=(w’,i’) sono connessi se
– i’=i+1– w=w’ oppure w e w’ differiscono esattamente nell’iesimo bit
Nodi = (r+1)2r nodiArchi = r2r+1 Bisezione O(N/log N)Diametro O(log N)
r=3
Sistemi P2P
Butterfly (FFT) Network0 1 2 3
000001010011100101110111
000001010011100101110111
Sistemi P2P
Butterflies
Sistemi P2P
Decomposing a Butterfly
Sistemi P2P
Decomposing a Butterfly
Sistemi P2P
Decomposing a Butterfly
Sistemi P2P
Decomposing a Butterfly
Sistemi P2P
Decomposing a Butterfly II
Sistemi P2P
Decomposing a Butterfly II
Sistemi P2P
Decomposing a Butterfly II
Sistemi P2P
Decomposing a Butterfly II
Sistemi P2P
Decomposing a Butterfly II
Sistemi P2P
Decomposing a Butterfly II
Sistemi P2P
Decomposing a Butterfly II
Sistemi P2P
Routing on a Butterfly0 1 2 0
000001010011100101110111
000001010011100101110111
Sistemi P2P
DHT: Routing (Viceroy)
Sistemi P2P
DHT: Routing (Viceroy)• I nodi sono mappati su una butterfly e contemporaneamente su un array circolare;
• Ogni nodo ha un identificatore addizionale chiamato livello (scegliendo a caso nell’intervallo 1 e log n’ dove n’ è una stima di n);
• Tre tipi di link:
• General link: predecessore e successore sull’array 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(log2 N) passi WHP;
Sistemi P2P
Fault tolerance and degree• Il grado di una rete P2P soggetta a fallimenti
deve essere almeno Ω(log n).• Infatti, Ω(log n) risulta essere il minimo valore
che permette alla rete di rimanere connessa anche nelle condizioni più proibitive;
• Sketch:– Supponiamo che tutti i nodi della rete possono fallire
con probabilità ½;– Ovviamente un nodo rimane disconnesso se tutti i
suoi vicini si disconnettono contemporaneamente;– Vogliamo che la probabilità che un nodo non si
disconnetta sia ≥ 1-1/n;– Pr[un nodo non si disconnette]=1-(1/2)k ≥ 1-1/n 1/n ≥(1/2)k 2k ≥ n k ≥ log n
In realtà la prova è un po’ più
complicata, ma questa rende bene l’idea
k=gradol=diametro
Sistemi P2P
P2P: grado e diametro• Abbiamo visto che il grado di una rete P2P
soggetta a fallimenti deve essere almeno Ω(log n).
• Esistono in letteratura molti protocolli che hanno grado e diametro pari a O(log n).
• E’ possibile fare di meglio?– Fissiamo il grado pari O(log n), qual è il minimo
diametro che riusciamo ad ottenere?– Fissiamo il grado pari O(log n), qual è il minimo
APL che riusciamo ad ottenere?
Stiamo cercando dei Lower Bound
Chord, tapestry, pasty…
Sistemi P2P
P2P: Lower BoundTeoremaDato un grafo G=(V,E) con |V| = n e grado k = O(log n), allora il diametro l = Ω(log n / log (log n)).Prova
Dato che il grado è k e il diametro è l, ogni nodo può raggiungere al massimo altri nodi (compreso il nodo stesso).
Poiché il grafo deve essere connesso, allora kl+1 > n l > logk (n) - 1 = Ω(log n / log (log n)).
Con argomentazioni analoghe si può dimostrare che anche l’APL è Ω(log n / log (log n)) in quanto la maggior parte dei nodi si trova a distanza l-O(1).
Ma allora Chord non è ottimale!!!
k=gradol=diametro
11
0 1
1
lll
i
i kk
kk
Sistemi P2P
P2P: Lower Bound (Esempio 1)
• k = log n;
• Ogni nodo ha grado k (k-1 figli e la radice dell’albero);• r raggiunge qualsiasi nodo in al più logk-1 n = O(log n / log (log
n)) passi.• Il diametro è 1 + logk-1 n =O(log n / log (log n)).
…
… …
k-1
r
Il grado in ingresso della radice è n-1
Sistemi P2P
P2P: Lower Bound (Esempio 2)
• k = log n;
• Ogni nodo ha grado(entrante più uscente) k ( k/2 -1 ai figli e 1 al padre (x2));
• r raggiunge qualsiasi nodo in al più logk/2 -1 n = O(log n / log (log n)) passi.
• Ogni nodo raggiunge r in al più logk/2 -1 n = O(log n / log (log n)) passi• Il diametro è O(log n / log (log n)).
…
… …
k/2 -1
r
Sistemi P2P
P2P: Lower Bound (Esempio 3)
• k = 6;
• Ogni nodo ha grado(entrante più uscente) 6 ( 2 ai figli e 1 al padre (x2));
• r raggiunge qualsiasi nodo in al più log n passi.• Ogni nodo raggiunge r in al più log n passi• Il diametro è 2 log n.
… …
2
r
La mole di traffico che spetta al nodo r è
nettamente maggiore rispetto agli altri nodi
La rete si disconnette se uno qualsiasi dei
nodi (escluse le foglie) fallisce
Sistemi P2P
P2P: Lower Bound sistemi uniformiTeorema
Consideriamo un sistema P2P uniforme con n nodi, sia k il numero dei vicini che ogni nodo mantiene, allora il lower bound per il diametro è 1/2log n (l ≥ 1/2log n ) se k 1/2log n.
Sistemi P2P
P2P: Lower Bound sistemi uniformiTeorema
Consideriamo un sistema P2P uniforme con n nodi, sia k il numero dei vicini che ogni nodo mantiene, allora il diametro è Ω(log n) se k = O(log n).
Sistemi P2P
grado
diametro
1
1
n -1
n -1
O(log n)
O(log n)
Chord e altriGrafo
completo
Anello
n è il numero dei peer;
LB
O(log n/ log(log n))
Sistemi P2P
Alcune osservazioni
• Chord è asintoticamente ottimo– Uniforme
• Facili da implementare e da analizzare;• Algoritmo di routing semplice (greedy);• Non c’è congestione sui nodi;• Fast bootstrap:• Routing locale;
– GAP• Chord (log n, log n)• LB (½ log n, ½ log n)
E’ possibile fare meglio di Chord, si può arrivare a
(0.72021 log n, 0.72021 log n)
Sistemi P2P
Domande:• Consideriamo un sistema P2P con N nodi e grado k =
O(log N), quale delle seguenti affermazioni è vera. (giustificare la risposta)
– il diametro è (log N)– il diametro è almeno ½ log N– il diametro è (log N / log log N) – Nessuna delle precedenti
• Dato un sistema P2P uniforme con N nodi, grado k e diametro l, (giustificare la risposta)
– k è O(log N) se l è O(log N) – l è (log N) se k è O(log N) – l è (log N/ log log N) se k è O(log N) – Nessuna delle precedenti
Sistemi P2P
Domande:
• Quale delle seguenti affermazioni è vera (giustificare la risposta)
– I protocolli P2P uniformi sono più efficienti– Non esiste un sistema P2P asintoticamente ottimo– Chord è un sistema non uniforme– Nessuna delle precedenti
• Consideriamo l’insieme dei protocolli P2P uniformi, quale delle seguenti affermazioni è vera . (giustificare la risposta)
– Chord è un sistema P2P asintoticamente ottimo (rispetto al tradeoff grado - diametro)
– Non esiste un sistema P2P asintoticamente ottimo (rispetto al tradeoff grado - diametro)
– Non esiste un sistema che offre prestazioni migliori del protocollo Chord (rispetto al tradeoff grado - diametro)
– Nessuna delle precedenti