Sistemi P2P avanzati Sistemi Peer To Peer (P2P) Avanzati Gennaro Cordasco – –

Slides:



Advertisements
Presentazioni simili
Algoritmi e Strutture dati Mod B
Advertisements

8) GLI INTERVALLI DI CONFIDENZA
Strutture dati per insiemi disgiunti
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.
Il problema del cammino minimo tra 2 nodi in un grafo con archi privati.
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
Algoritmi e strutture Dati - Lezione 7
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
Algoritmi e Strutture Dati (Mod. B)
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
Algoritmi e Strutture Dati (Mod. B)
Algoritmi e Strutture Dati (Mod. B)
Trovare il percorso minimo da b ad ogni altro vertice
Algoritmi e strutture dati
Peer To Peer (o quasi) Gennaro Cordasco.
? 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
Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi Abbiamo detto abbastanza KoordeNeighbor of Neighbor routing (NON)
Autori: I. Stoica, R. Morris, D. Liben-Nowell, D. R. Karger, M. F
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.
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
Intelligenza Artificiale Algoritmi Genetici
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.
Sistemi Peer To Peer (P2P)
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
Elementi di Informatica di base
Esercizio 10.* Un cassiere vuole dare un resto di n centesimi di euro usando il minimo numero di monete. a) Descrivere un algoritmo goloso per fare ciò.
Strutture dati per insiemi disgiunti
Radix-Sort(A,d) // A[i] = cd...c2c1
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Cerchiamo di rispondere alla seconda domanda 2)La soluzione trovata con lalgoritmo goloso è ottima o esistono anche soluzioni con più di quattro attività?
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.
Sistemi Peer to Peer Gennaro Cordasco
Transcript della presentazione:

Sistemi P2P avanzati Sistemi Peer To Peer (P2P) Avanzati Gennaro Cordasco – – – Laboratorio ISISLAB 2 (L8 a Baronissi)

Sistemi P2P avanzati 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

Sistemi P2P avanzati Outline Motivazioni Idea Protocollo Valutazione delle prestazioni: lookup

Sistemi P2P avanzati Chord: Obiettivi Load Balance Decentralization Scalability Availability Flexibility

Sistemi P2P avanzati 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 loperazione 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 avanzati Chord: Lookup Come trovare risorse in un sistema completamente decentralizzato? il Lookup è il problema fondamentale Internet Publisher Key=LetItBe Value=MP3 data Lookup(LetItBe) N1N1 N2N2 N3N3 N5N5 N4N4 Client ?

Sistemi P2P avanzati Chord: Lookup DHTs (Tapestry, Pastry, Chord, CAN,…) Qualè il modo migliore di realizzare il servizio di lookup? Internet Publisher Key=LetItBe Value=MP3 data Lookup(LetItBe) N1N1 N2N2 N3N3 N5N5 N4N4 Client

Sistemi P2P avanzati 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 lingresso (join) e luscita (leave) dei nodi? Quale è il miglior algoritimo di routing?

Sistemi P2P avanzati Chord: Consistent Hashing Fondamentalmente, larchitettura di Chord è basata su un ring di 2 m identificatori [0, 2 m -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 lN+1 th nodo nel sistema circa O(K/N) chiavi (risorse) devono cambiare posizione) Discuteremo in dettaglio Consisten Hashing nelle prossime lezioni

Sistemi P2P avanzati 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 avanzati 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= ID=123 SHA-1

Sistemi P2P avanzati Chord: Identificatori Gli identificatori ottenuti utilizzando Consistent Hashing vengono mappati su un ring circolare modulo 2 m m=

Sistemi P2P avanzati 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= nodi risorse

Sistemi P2P avanzati Chord Esempio leave (nodo 14) m= nodi risorse

Sistemi P2P avanzati Chord Esempio join (nodo 26) m= nodi risorse

Sistemi P2P avanzati 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= nodi risorse

Sistemi P2P avanzati 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 lanello in senso orario finché non raggiunge il predecessore della destinazione Richiede poche info: Tabella di routing 1 entry Costo lookup O(N) msg m= nodi risorse

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

Sistemi P2P avanzati 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 risorse

Sistemi P2P avanzati 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 cresce esponenzialmente In particolare, il finger i del nodo n punta al responsabile (successor) della chiave n+2 i-1 m= nodi risorse

Sistemi P2P avanzati 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= nodi risorse

Sistemi P2P avanzati Tavola dei finger IDResp. 8+1= = = = = =1214 m=6 indiceNod o Successors Predecessor Nodo 1

Sistemi P2P avanzati successor(1)=1 0 successor(2)=3 successor(6)=6 successor(9)=9 successor(10)=13 successor(14)= successor(0)=0

Sistemi P2P avanzati isuccnode isuccnode isuccnode Qualcuno vuol provare a descrivere la tabella di routing del nodo 9? ?? ?? ?? ??

Sistemi P2P avanzati Algoritmo Lookup Il nodo n chiama lookup(id)

Sistemi P2P avanzati isuccnode isuccnode isuccnode

Sistemi P2P avanzati Join e Stabilization Crea Anello Vuoto Join n=N26, n=qualunque nodo attivo Stabilize n=N26 n=N21

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

Sistemi P2P avanzati Chord: Risultati Lemma Dato un qualunque intervallo di ampiezza 2 m /N, il numero di ID di nodi atteso in questo intervallo è 1 e O(log N) w.h.p.

Sistemi P2P avanzati 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 lid k Siano p e s, rispettivamente, il predecessore e il successore dellID k Se n p e n s, n non è in grado di risolvere da solo la query n k p s

Sistemi P2P avanzati 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+2 i-1, n+2 i ) Poiché tale intervallo contiene almeno un nodo (p) il nodo n contattera li-esimo finger f. Ovviamente tale nodo, ha ID minore o uguale di p. Per definizione di finger la distanza fra n e f è almeno 2 i-1 n id p f s

Sistemi P2P avanzati 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 2 i-1 Inoltre f e p sono entrambi nellintervallo [n+2 i-1, n+2 i ), quindi la loro distanza è al più 2 i-1 In altre parole, f è più vicino a p che a n, e quindi ad ogni hop la distanza almeno si dimezza n id p f s

Sistemi P2P avanzati 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 almeno si dimezza La distanza maggiore fra due ID è 2 m -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 avanzati 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ù 2 m / 2 logN = 2 m /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 avanzati La Lookup impiega O(log N) hop Lookup(19) 19

Sistemi P2P avanzati Chord: Risultati Abbiamo detto che i nodi di Chord mantengono O(log N) informazioni relative ad altri nodi, daltra 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 tutti sul successore del nodo. Infatti un lemma analogo a quello mostrato in precedenza permette di dimostrare che che la distanza minima fra due nodi (w.h.p.) è almeno 2 m /N 2 Abbiamo detto che il finger i del nodo n cade nel successore dellID n+2 i-1 Di conseguenza, per ogni i m - 2log N +1, il responsabile dellID n+2 i-1 n+ 2 m /N 2 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 avanzati Chord: Risultati Lemma Dato un qualunque intervallo di ampiezza 2 m /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]

Sistemi P2P avanzati 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):

Sistemi P2P avanzati 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):

Sistemi P2P avanzati Chord: Risultati Lemma Dato un qualunque intervallo di ampiezza 2 m /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 X 1, X 2, …,X n prove ripetute indipendenti tali che per 1 i n, Pr[X i =1]=p i, 0 < p i < 1. Se allora

Sistemi P2P avanzati Chernoff Bound Siano X 1, X 2, …,X n prove ripetute indipendenti tali che per 1 i n, Pr[X i =1]=p i, 0 < p i < 1. Se allora Dim per ogni reale positivo t. Se applichiamo la disuguaglianza di Marcov a destra si ottiene exp(x)=e x

Sistemi P2P avanzati Chernoff Bound Siano X 1, X 2, …,X n prove ripetute indipendenti tali che per 1 i n, Pr[X i =1]=p i, 0 < p i < 1. Se allora Dim … Poichè le X i sono indipendenti, anche le exp(tX i ) lo sono.

Sistemi P2P avanzati Chernoff Bound Siano X 1, X 2, …,X n prove ripetute indipendenti tali che per 1 i n, Pr[X i =1]=p i, 0 < p i < 1. Se allora Dim … La variabile exp(tX i ) assume valore e t con probabilità p i e 1 con probabilità 1-p i.

Sistemi P2P avanzati Chernoff Bound Siano X 1, X 2, …,X n prove ripetute indipendenti tali che per 1 i n, Pr[X i =1]=p i, 0 < p i < 1. Se allora Dim … La variabile exp(tX i ) assume valore e t con probabilità p i e 1 con probabilità 1-p i.

Sistemi P2P avanzati Chernoff Bound Siano X 1, X 2, …,X n prove ripetute indipendenti tali che per 1 i n, Pr[X i =1]=p i, 0 < p i < 1. Se allora Dim … Poichè 1+x<e x

Sistemi P2P avanzati Chernoff Bound Siano X 1, X 2, …,X n prove ripetute indipendenti tali che per 1 i n, Pr[X i =1]=p i, 0 < p i < 1. Se allora Dim … la espressione a destra assume il valore minimo per t=ln(1+δ). Sostituendo otteniamo il Teorema.

Sistemi P2P avanzati Chord: Risultati Lemma Dato un qualunque intervallo di ampiezza 2 m /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

Sistemi P2P avanzati Chord: Risultati Lemma Dato un qualunque intervallo di ampiezza 2 m /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,

Sistemi P2P avanzati Chord: Risultati Lemma Dato un qualunque intervallo di ampiezza 2 m /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 ?

Sistemi P2P avanzati Chord: Risultati Lemma Dato un qualunque intervallo di ampiezza 2 m /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 Y i il numero di palline cadute nelli-esimo contenitore. Siamo in presenza di prove ripetute indipendenti. La probabilità di successo p i =1/N. La media risulta banalmente 1. 2 m /N

Sistemi P2P avanzati Chord: Risultati Lemma Dato un qualunque intervallo di ampiezza 2 m /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 log 2 N è limitata dalla relazione Con δ = k log 2 N -1. Sostituendo otteniamo 2 m /N Altamente improbabil e

Sistemi P2P avanzati Ricapitolando Le chiavi sono mappate su un array circolare costituito da 2 m identificatori; Il nodo responsabile di una determinata chiave è il primo nodo che la succede in senso orario; Ogni nodo n di Chord mantiene due insiemi di vicini: –Il primo contiene gli m successori del nodo n più il predecessore. Questo insieme viene usato per dimostrare la correttezza del Routing; –Un insieme di n nodi costituito dai responsabili delle chiavi distanziate esponenzialmente dal nodo n, vale a dire linsieme delle chiavi che si trovano a distanza 2 i da n dove 0 i m-1. Questo insieme viene usato per dimostrare lefficienza del Routing; m=3

Sistemi P2P avanzati Le informazioni che il nodo deve mantenere sugli altri nodi sono log N + m + 1 (O(log N) WHP); Il numero di messaggi necessari per fare lookup è m (O(log N) WHP); Lalgoritmo di routing effettua a ogni step il passo più grande che riesce a fare, senza mai superare il target; Il costo che si paga quando un nodo lascia o si connette alla rete è di O(log 2 N) messaggi WHP; Lalgoritmo in pratica simula un Ipercubo, inoltre si comporta molto bene in un sistema dinamico Ricapitolando

Sistemi P2P avanzati Fine Lezione 2 Domande??