Upload
cosima-venturi
View
220
Download
0
Embed Size (px)
Citation preview
Sistemi P2P avanzati
Lezione 4
• Consisten Hashing• Altri sistemi P2P uniformi• F-Chord :-)
Sistemi P2P avanzati
• Partendo dalla figura, descrivere la procedura Join
• Descrivere le varie tecniche di replicazione e analizzarne vantaggi e svantaggi
• Descrivere PNS e PRS• In una rete inizialmente stabile, se
assumiamo che ciascun nodo cade con probabilità ½, allora la lookup impiega
(N) (½ log N) (m) (nessuna prec.)
Facciamo un piccolo test
ac
b
Sistemi P2P avanzati
Outline
• Consistent Hashing- Definizione- Desiderata- Proprietà- Esempio
- Altri Sistemi- Tapestry- CAN- Viceroy
• F-Chord– Idea– P2P uniformi– Risultati
Sistemi P2P avanzati
Una chiave (risorsa) è memorizzata nel primo nodo che segue in senso orario
32
90
123 20
5
ID a 7-bit
0IP=“198.10.10.1”
101
60Chiave=“LetItBe”
Consistent Hashing [Karger et al 97]
Sistemi P2P avanzati
Consistent Hashing [Karger et al 97]
Sistemi P2P avanzati
Consistent Hashing [Karger et al 97]
• Nasce come una tecnica per replicare i dati nei sistemi C/S
• Problema: memorizzare una copia dei dati messi a disposizione dal Server su un pool di Client– Load balancing– Fast recovery
• Le funzioni Hash mappano chiavi (risorse) in interi.
Sistemi P2P avanzati
Consistent Hashing [Karger et al 97]
• Con N Client una possibile funzione è
x -> ax+b (mod N)
• Cosa accade se varia N?– Buona parte dei dati va riposizionata
• Se la usassimo in un sistema P2P?– N varia continuamente– nessuno sa precisamente quanto vale N
Sistemi P2P avanzati
x -> ax+b (mod N)
• In particolare se varia N:– è assicurato un bilanciamento sul numero
di dati per posizione– molti dati devono cambiare posizione– il numero di posizioni che un dato può
potenzialmente raggiungere non è limitato
Consistent Hashing [Karger et al 97]
Sistemi P2P avanzati
Consistent Hashing [Karger et al 97]
• Desiderata– Vogliamo che quando N varia (cioè un
nodo entra o esce dal sistema)• la quantità di dati che viene rimappata nel
sistema è bassa• le posizioni in cui un generico dato (risorsa)
è mappato sono limitate• i dati vengono assegnati in maniera
bilanciata su tutti i nodi
Sistemi P2P avanzati
Consistent Hashing [Karger et al 97]
In altre parole, per definizione un Consistent Hashing deve godere di opportune proprietà:
Bilanciamento
Monotonicità
Spread
Carico
Sistemi P2P avanzati
• Sia I l’insieme delle risorse e B l’insieme delle possibili posizioni (I = |I|).
• Ovviamente le possibili configurazioni del sistema sono 2B
• Quello che cerchiamo è una funzione f:2B I -> B
• Se V è una configurazione (V2B) è ovvio che f(V,id) V, per qualsiasi id
Consistent Hashing [Karger et al 97]
Sistemi P2P avanzati
Bilanciamento:
Per ogni sottoinsieme V di posizioni (nodi) ed I dati, il numero di dati per ogni posizione è O(I/|V|) con alta probabilità.
Monotonicità:
Se al variare di N le posizioni (i nodi) disponibili passano da V1 a V2 con V1 V2, la migrazione dei dati deve avvenire solo verso posizioni appartenenti a V2\V1, ma non a V1 .
Se V1 V2, f(V2, i) V1 allora f(V1, i) = f(V2, i)
Consistent Hashing [Karger et al 97]
I dati si devono
muovere solo se è
necessario
Sistemi P2P avanzati
Spread:
Al variare di N, il numero di posizioni che un dato può assumere è limitato.
Carico:
Al variare di N, il numero di dati che una posizione accoglie è limitato.
Consistent Hashing [Karger et al 97]
Sistemi P2P avanzati
Funzioni Hashing Consistenti esistono ?
Siano K(x) ed N(x) due funzioni casuali che hanno come codominio l’intervallo [0,1).
Definiamo la seguente funzione Hash:
Utilizziamo K(x) per mappare le chiavi
Utilizziamo N(x) per mappare i nodi
F: La chiave i viene memorizzata nel nodo j se la differenza
|K(i)-N(j)| è la minima su tutti i nodi j.
Consistent Hashing [Karger et al 97]
Sistemi P2P avanzati
0 1
F precedentemente definito:
Bilanciamento ?
Monotonicità ?
Spread ?
Carico ?
Consistent Hashing [Karger et al 97]
Sistemi P2P avanzati
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 avanzati
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;
• 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 avanzati
DHT: Routing (Viceroy)
• I nodi sono mappati su una butterfly e contemporaneamente su un array circolare;
• Ogni nodo ha un identificatore addizionale chiamato livello;
• 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 avanzati
DHT: Routing (Viceroy)
Sistemi P2P avanzati
F-Chord: performance metrics
• Tre parametri per la misura delle performances: – Dimensione della tabella di routing
(degree)•Memoria utilizzata •Misura inoltre il costo per la stabilizzazione
della rete successiva a joins/leaves di nodi
– Diametro e Lunghezza media delle path•Velocità nel reperire i dati
Sistemi P2P avanzati
Uniform Routing Algorithm• Consideriamo un ring di 2m identificatori,
etichettati da 0 a 2m -1• Sia N=2m, un algoritmo di routing si dice
uniforme se per ogni nodo n, n è connesso con y iff n+z è connesso con y+z (i.e. : tutte le comunicazioni sono simmetriche).– Vantaggi
• Facili da implementare• L’algoritmo greedy è sempre ottimale• Non c’è congestione sui nodi
– Svantaggi• Sono meno potenti (De Bruijn Graph e Neighbor
of Neighbor Greedy routing sono più potenti)
Sistemi P2P avanzati
Asymptotic tradeoff curve
1
1
N -1
N -1
O(log N)
O(log N)
Chord et al.Totally connected graph
Ring
O(log N)
Diameter
Uniform Routing algorithm
Non-Uniform Routing algorithm
Sistemi P2P avanzati
Idea (consideriamo un ring [0,1))
1-2x=0 x=1/2 1-x-x2=0 x=1/
x
x2
618.12
51
S1=1
Si=(1/2)(i-1)
…
Sd≤1/n d ≤ log2 N
S1=1
(1/)2(i-1) ≤ Si ≤ (1/ )(i-1)
…
Sd≤1/n d ≤ log N
Chord
x
Sistemi P2P avanzati
The Idea(2)
• Possiamo usare solo i jump xi con i dispari (x, x3, x5, x7, …)
1
x2
xx x3
x3x2x2
x
x2
d = (1/2)log N
= (1/2)log N
Sistemi P2P avanzati
The Idea(3)
• Costruiamo un nuovo algoritmo di routing uniforme, basato su una nuova tecnica, in particolare il nuovo schema è basato sui numeri di Fibonacci.
• Fib(i) denota l’ i-th numero di Fibonacci.
• Ricordiamo che dove
è il golden ratio and
[ ] rappresenta l’intero più vicino.
12 4 8 16 32 64
Chord
1 51.618
2
( ) / 5iFib i
Sistemi P2P avanzati
Fib-Chord
• FormalmenteSia N (Fib(m-1), Fib(m)]. Lo schema usa m-2 jumps (fingers) di taglia Fib(i) per i = 2,3, … , m-1
• Fib-Chord– Diametro :
– Grado :
123 5 8 13 21 34 55 89
Fib-Chord
1log 0.72021 log
2N N
log 1.44042 logN N
Sistemi P2P avanzati
• F-Chord()Fib(2i), for i = 1,2, …,(1-)(m-2)Fib(i), for i = 2 (1-)(m-2) +2, …, m-1
• F-Chord() usa (m-2) jumps
F-Chord()
2 5 13 34 89
Fib-Chord
1 3 8 21 55
even jumps
all jumps
[1/2,1]
Sistemi P2P avanzati
Property of F-Chord [CGHNS04]• Grado:
F-Chord() usa (m-2) jumps
• Diametro:Theorem For any value of , the diameter of F-Chord()
is m/2 0.72021 log N
• Lunghezza media delle path: Theorem The average path length of the F-Chord()
scheme is bounded by 0.39812 log N + (1-)0.24805 log N
Sistemi P2P avanzati
F-Chord(1/2)
Fib-Chord = F-Chord(1)– Diametro :
– Grado :
• F-Chord(1/2)– Diametro :
– Grado :
log 1.44042 logN N
2 5 13 34 89
Fib-Chord
1 3 8 21 55
F-Chord(1/2)
1log 0.72021 log
2N N
1log 0.72021 log
2N N
1log 0.72021 log
2N N
Sistemi P2P avanzati
The Lower Bound• E’ possibile mostrare che 1.44042 log N è un
bound sulla somma grado e diametro per ogni sistema P2P uniforme con N identificatori.
• TheoremLet N(,d) denote the maximum number of consecutive identifiers obtainable trough a uniform algorithm using up to jumps (i.e. degree ) and diameter d. For any 0, d0, it holds that
N(,d) Fib(+d+1)
F-Chord(1/2) is optimal
Sistemi P2P avanzati
Average path length
• Fib-Chord: 0.39812 log N • F-Chord(1/2): 0.522145 log N
• Theorem For each [0.58929,0.69424] the F-
Chord() schemes improve on Chord in all parameters (number of jumps, diameter, and average path length)
Chord is better
Sistemi P2P avanzati
0.00
0.20
0.40
0.60
0.80
1.00
1.20
1.40
1.60
0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00
Degree
Diameter
Average Path Length
Chord APL
Chord Degree &Diameter
hops
x
log
nGraphical results
Lower is better