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

Slides:



Advertisements
Presentazioni simili
Algoritmi e Strutture dati Mod B
Advertisements

8) GLI INTERVALLI DI CONFIDENZA
Ricorrenze Il metodo di sostituzione Il metodo iterativo
2. Introduzione alla probabilità
Definizione di probabilità, calcolo combinatorio,
Intervalli di confidenza
1 2. Introduzione alla probabilità Definizioni preliminari: Prova: è un esperimento il cui esito è aleatorio Spazio degli eventi elementari : è linsieme.
Algoritmi e Strutture Dati
Cammini minimi con una sorgente
Hash Tables Indirizzamento diretto Tabelle Hash Risoluzioni di collisioni Indirizzamento aperto.
Alberi binari di ricerca
3. Processi Stocastici Un processo stocastico è una funzione del tempo i cui valori x(t) ad ogni istante di tempo t sono v.a. Notazione: X : insieme di.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Usa la tecnica del.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Usa la tecnica del.
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Algoritmi e Strutture Dati
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 29/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09
U V U V (a) |cfc|=2 prima e dopo (b) |cfc|=2 prima e |cfc|=1 dopo
Algoritmo di Ford-Fulkerson
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 4 Ordinamento:
Il problema del dizionario
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Capitolo 1 Unintroduzione.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 4 Ordinamento: Heapsort Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Capitolo 9 Il problema della gestione di insiemi disgiunti (Union-find) Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati (Mod. A)
Alberi di Ricorrenza Gli alberi di ricorrenza rappresentano un modo conveniente per visualizzare i passi di sostitu- zione necessari per risolvere una.
Algoritmi e Strutture Dati
Trovare il percorso minimo da b ad ogni altro vertice
? Peer To Peer (P2P) Kademlia pastry can jxta napster fiorana
Sistemi Peer To Peer (P2P) Avanzati Gennaro Cordasco Gennaro Cordasco
Lezione 8.
Algoritmi e Strutture Dati
Lezione 5. Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi Abbiamo detto abbastanza KoordeNeighbor of Neighbor routing (NON)
Ancora esercizi!!! Chernoff Bound allora
Sistemi P2P avanzati Sistemi Peer To Peer (P2P) Avanzati Gennaro Cordasco – –
Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi Abbiamo detto abbastanza KoordeNeighbor of Neighbor routing (NON)
Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan MIT and Berkeley Chord: A Scalable Peer-to-peer Lookup Service for Internet.
Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi KoordeNeighbor of Neighbor routing (NON)
Sistemi P2P avanzati Sistemi Peer To Peer (P2P) Avanzati Gennaro Cordasco – –
Lezione 5 Domande: Laverage path length di Chord con 2^b identificatori e N=2^b nodi è (giustificare la risposta) Laverage path length di Chord con 2^b.
Domande Consideriamo un grafo di de bruijn con base k, ed N = k^b nodi, quale delle seguenti affermazioni è vera (giustificare la risposta) Il grado di.
Modello dati ALBERO Albero: Albero: insieme di punti chiamati NODI e linee chiamate EDGES EDGE: linea che unisce due nodi distinti Radice (root): in una.
QuickSort Quick-Sort(A,s,d) IF s < d THEN q = Partiziona(A,s,d) Quick-Sort(A,s,q-1) Quick-Sort(A,q + 1,d)
Lezione 8 Numerosità del campione
Num / 36 Lezione 9 Numerosità del campione.
Sistemi P2P avanzati Sistemi Peer To Peer (P2P) Avanzati Gennaro Cordasco – –
Sistemi P2P avanzati Lezione 3 Chord seconda parte.
Sistemi P2P Facciamo un piccolo test Quanti successori ha un nodo nel protocollo Chord? (m) (1) (log N) (nessun prec.) Aumentando il numero di identificatori.
Sistemi P2P avanzati Lezione 4 Consisten Hashing Altri sistemi P2P uniformi F-Chord :-)
Sistemi P2P Facciamo un piccolo test Quanti successori ha un nodo nel protocollo Chord? (m) (1) (log N) (nessun prec.) Aumentando il numero di identificatori.
Presentazione del progetto di: Reti di calcolatori L-S Matteo Corbelli.
Reti L-S 2005 Servizio per la ricerca distribuita basato sul protocollo Rossi Daniele
Corso di Informatica per Giurisprudenza Lezione 7
Strutture dati per insiemi disgiunti
Radix-Sort(A,d) // A[i] = cd...c2c1
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Ispezione lineare La funzione hash h(k,i) si ottiene da una funzione hash ordinaria h'(k) ponendo L’esplorazione inizia dalla cella h(k,0) = h'(k) e continua.
PARTE PRIMA: Reti Cablate
David Novak and Pavel Zezula GRUPPO 13 Decorte Andrea Giammarino Giuseppe.
Implementazione di dizionari Problema del dizionario dinamico Scegliere una struttura dati in cui memorizzare dei record con un campo key e alcuni altri.
Overlay network strutturate per applicazioni peer to peer Lorenzo Castelli.
Codici prefissi Un codice prefisso è un codice in cui nessuna parola codice è prefisso (parte iniziale) di un’altra Ogni codice a lunghezza fissa è ovviamente.
In alcuni casi gli esiti di un esperimento possono essere considerati numeri naturali in modo naturale. Esempio: lancio di un dado In atri casi si definisce.
Sistemi Peer to Peer Gennaro Cordasco
Transcript della presentazione:

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 http://www.pdos.lcs.mit.edu/chord/

Chord: Obiettivi Load Balance Decentralization Scalability Availability Flexibility

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

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

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”)

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?

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

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

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=“198.10.10.1” ID=123 SHA-1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.

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

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

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

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

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.

La Lookup impiega O(log N) hop 5 10 110 20 19 99 32 Lookup(19) 80 60

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)

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]

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):

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):

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 1 ≤ i ≤ n, Pr[Xi=1]=pi, Pr[Xi=0]=1-pi con 0 < pi < 1. Se allora

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

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è le Xi sono indipendenti, anche le exp(tXi) lo sono.

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.

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.

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

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.

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

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,

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 ?

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

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