32
Sistemi P2P avanzati Lezione 4 • Consisten Hashing • Altri sistemi P2P uniformi • F-Chord :-)

Sistemi P2P avanzati Lezione 4 Consisten Hashing Altri sistemi P2P uniformi F-Chord :-)

Embed Size (px)

Citation preview

Page 1: Sistemi P2P avanzati Lezione 4 Consisten Hashing Altri sistemi P2P uniformi F-Chord :-)

Sistemi P2P avanzati

Lezione 4

• Consisten Hashing• Altri sistemi P2P uniformi• F-Chord :-)

Page 2: 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

Page 3: Sistemi P2P avanzati Lezione 4 Consisten Hashing Altri sistemi P2P uniformi F-Chord :-)

Sistemi P2P avanzati

Outline

• Consistent Hashing- Definizione- Desiderata- Proprietà- Esempio

- Altri Sistemi- Tapestry- CAN- Viceroy

• F-Chord– Idea– P2P uniformi– Risultati

Page 4: Sistemi P2P avanzati Lezione 4 Consisten Hashing Altri sistemi P2P uniformi F-Chord :-)

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]

Page 5: Sistemi P2P avanzati Lezione 4 Consisten Hashing Altri sistemi P2P uniformi F-Chord :-)

Sistemi P2P avanzati

Consistent Hashing [Karger et al 97]

Page 6: Sistemi P2P avanzati Lezione 4 Consisten Hashing Altri sistemi P2P uniformi F-Chord :-)

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.

Page 7: Sistemi P2P avanzati Lezione 4 Consisten Hashing Altri sistemi P2P uniformi F-Chord :-)

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

Page 8: Sistemi P2P avanzati Lezione 4 Consisten Hashing Altri sistemi P2P uniformi F-Chord :-)

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]

Page 9: Sistemi P2P avanzati Lezione 4 Consisten Hashing Altri sistemi P2P uniformi F-Chord :-)

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

Page 10: Sistemi P2P avanzati Lezione 4 Consisten Hashing Altri sistemi P2P uniformi F-Chord :-)

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

Page 11: Sistemi P2P avanzati Lezione 4 Consisten Hashing Altri sistemi P2P uniformi F-Chord :-)

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]

Page 12: Sistemi P2P avanzati Lezione 4 Consisten Hashing Altri sistemi P2P uniformi F-Chord :-)

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

Page 13: Sistemi P2P avanzati Lezione 4 Consisten Hashing Altri sistemi P2P uniformi F-Chord :-)

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]

Page 14: Sistemi P2P avanzati Lezione 4 Consisten Hashing Altri sistemi P2P uniformi F-Chord :-)

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]

Page 15: Sistemi P2P avanzati Lezione 4 Consisten Hashing Altri sistemi P2P uniformi F-Chord :-)

Sistemi P2P avanzati

0 1

F precedentemente definito:

Bilanciamento ?

Monotonicità ?

Spread ?

Carico ?

Consistent Hashing [Karger et al 97]

Page 16: Sistemi P2P avanzati Lezione 4 Consisten Hashing Altri sistemi P2P uniformi F-Chord :-)

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;

Page 17: Sistemi P2P avanzati Lezione 4 Consisten Hashing Altri sistemi P2P uniformi F-Chord :-)

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

Page 18: Sistemi P2P avanzati Lezione 4 Consisten Hashing Altri sistemi P2P uniformi F-Chord :-)

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;

Page 19: Sistemi P2P avanzati Lezione 4 Consisten Hashing Altri sistemi P2P uniformi F-Chord :-)

Sistemi P2P avanzati

DHT: Routing (Viceroy)

Page 20: Sistemi P2P avanzati Lezione 4 Consisten Hashing Altri sistemi P2P uniformi F-Chord :-)

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

Page 21: Sistemi P2P avanzati Lezione 4 Consisten Hashing Altri sistemi P2P uniformi F-Chord :-)

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)

Page 22: Sistemi P2P avanzati Lezione 4 Consisten Hashing Altri sistemi P2P uniformi F-Chord :-)

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

Page 23: Sistemi P2P avanzati Lezione 4 Consisten Hashing Altri sistemi P2P uniformi F-Chord :-)

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

Page 24: Sistemi P2P avanzati Lezione 4 Consisten Hashing Altri sistemi P2P uniformi F-Chord :-)

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

Page 25: Sistemi P2P avanzati Lezione 4 Consisten Hashing Altri sistemi P2P uniformi F-Chord :-)

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

Page 26: Sistemi P2P avanzati Lezione 4 Consisten Hashing Altri sistemi P2P uniformi F-Chord :-)

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

Page 27: Sistemi P2P avanzati Lezione 4 Consisten Hashing Altri sistemi P2P uniformi F-Chord :-)

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]

Page 28: Sistemi P2P avanzati Lezione 4 Consisten Hashing Altri sistemi P2P uniformi F-Chord :-)

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

Page 29: Sistemi P2P avanzati Lezione 4 Consisten Hashing Altri sistemi P2P uniformi F-Chord :-)

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

Page 30: Sistemi P2P avanzati Lezione 4 Consisten Hashing Altri sistemi P2P uniformi F-Chord :-)

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

Page 31: Sistemi P2P avanzati Lezione 4 Consisten Hashing Altri sistemi P2P uniformi F-Chord :-)

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

Page 32: Sistemi P2P avanzati Lezione 4 Consisten Hashing Altri sistemi P2P uniformi F-Chord :-)

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