Sistemi Peer to Peer Gennaro Cordasco

Slides:



Advertisements
Presentazioni simili
Peer To Peer (o quasi) Gennaro Cordasco.
Advertisements

Sistemi Peer To Peer (P2P) Avanzati Gennaro Cordasco Gennaro Cordasco
Lezione 8.
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)
Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi KoordeNeighbor of Neighbor routing (NON)
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.
Errata Corrige. DHT Routing (Tapestry) Tabella di routing (base k=4, digit d=4) Consideriamo il nodo x con id (x 1, x 2, x 3, x 4 ): (1+x 1, *, *, *)
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.
Sistemi P2P avanzati Lezione 4 Consisten Hashing Altri sistemi P2P uniformi F-Chord :-)
Sistemi Peer To Peer (P2P)
Prof.ssa Rossella Petreschi Lezione del 29/10/2012 del Corso di Algoritmi e Strutture Dati Riferimenti: Capitolo 19 del testo Cormen, Leiserson, Rivest,
Teorema di Ramsey Introduzione Teorema di Schur Upper bound, Lower bound facile Lezione 5 dal libro di Babai & Frankl: Linear Algebra Methods in Combinatorics.
La seguente matrice è una matrice delle distanze di un’istanza del problema del Commesso Viaggiatore. Calcolare un lower bound per il valore del ciclo.
Huffman Canonico: approfondimento. Come abbiamo visto, Huffman canonico ci permette di ottenere una decompressione più veloce e con un uso più efficiente.
La codifica di Huffman. Codici ottimi - I Un codice è ottimo se ha la lunghezza media di parola L più piccola Si può vedere come un problema di ottimizzazione.
Indici di Posizione Giulio Vidotto Raffaele Cioffi.
Prof.ssa Rossella Petreschi Lezione del 29 /10/2014 del Corso di Algoritmica Lezione n°8.
Il metodo STATIS (L’Hermier des Plantes, 1976; Escoufier, 1983; Lavit et al., 1994) STATIS = Structuration des Tableaux A Trois IndiceS Tecnica esplorativa.
Alberi. Gli alberi sono una generalizzazione delle liste che consente di modellare delle strutture gerarchiche come questa: Largo Fosco Dora Drogo Dudo.
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
SUMMERMATHCAMP TARVISIO, AGOSTO 2017
Lezione n°10 Prof.ssa Rossella Petreschi
Progettare algoritmi veloci usando strutture dati efficienti
Cammini minimi in grafi:
Inserzione e Cancellazione
Branch and Bound Lezione n°19 Prof.ssa Rossella Petreschi
Branch and Bound Lezione n°14 Prof.ssa Rossella Petreschi
x : variabile indipendente
Progettare algoritmi veloci usando strutture dati efficienti
Algoritmi di stima con perdita di pacchetti in reti di sensori wireless: modellizzazione a catene di Markov, stima e stima distribuita Chiara Brighenti,
Spiegazione di alcuni concetti
Analisi di sequenze di operazioni Union-Find
Alberi binari Definizione Sottoalberi Padre, figli
Lezione n°17 Prof.ssa Rossella Petreschi
B-alberi e alberi autoaggiustanti
Complessità ammortizzata degli algoritmi Union Find
dal libro di Babai & Frankl:
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Sistemi Peer to Peer Gennaro Cordasco
Lezione 5 Domande: L’average path length di Chord con 2^b identificatori e N=2^b nodi è (giustificare la risposta) (b) (b/2) (log(N)) (Nessuna delle precedenti)
K4 è planare? E K3,3 e K5 sono planari? Sì!
per rappresentare grafi
Lezione n°12 Prof.ssa Rossella Petreschi
Algoritmi e Strutture Dati
32 = 9 x2 = 9 x = 3 32 = 9 √9 = 3 L’estrazione di radice
Algoritmi e Strutture Dati
PROCEDURA per la misura e la relativa stima
Lezione n°6 Prof.ssa Rossella Petreschi
Branch and Bound Lezione n°18 Prof.ssa Rossella Petreschi
Sistemi Peer to Peer Gennaro Cordasco
Introduzione agli Algoritmi e alle Strutture Dati
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
ANALISI DI REGRESSIONE
Progettare algoritmi veloci usando strutture dati efficienti
Algoritmi e Strutture Dati
Backtracking Lezione n°17 Prof.ssa Rossella Petreschi
Esercizio Dato un albero binario, definiamo altezza minimale di un nodo v la minima distanza di v da una delle foglie del suo sottoalbero, definiamo invece.
Macchine a stati finiti
Cammini minimi in grafi:
Reti Combinatorie: sintesi
Lezione n°7 Splay-Trees e Heaps Prof.ssa Rossella Petreschi
Insiemi disgiunti.
Unione per ranghi compressi
Algoritmi e Strutture Dati
HeapSort Stesso approccio incrementale del selectionSort Tipo di dato
Transcript della presentazione:

Sistemi Peer to Peer Gennaro Cordasco Dipartimento di Informatica e Applicazioni Università degli Studi di Salerno cordasco[@]dia.unisa.it cordasco+p2p[@]gmail.com http://www.dia.unisa.it/~cordasco Laboratorio ISISLAB2 (DIA Piano 2) 24/02/2019

Materiale didattico i) Peer-to-Peer Systems and Applications Series: Lecture Notes in Computer Science , Vol. 3485 Sublibrary: Information Systems and Applications, incl. Internet/Web, and HCI www.peer-to-peer.info Steinmetz, Ralf; Wehrle, Klaus (Eds.) 2005, XVII, 629 p. With online files/update., Softcover ISBN: 978-3-540-29192-3 ii) Research papers (http://www.dia.unisa.it/~cordasco) iii) JXTA java Programmers guide (http://www.dia.unisa.it/~cordasco) iv) JXTA Protocol Specifications (http://www.dia.unisa.it/~cordasco) v) Le slide del corso (http://www.dia.unisa.it/~cordasco) … che ovviamente non sono sufficienti per superare l’esame!!! 24/02/2019

20/10 Chord (2a parte) + Consistent Hashing 27/10 Altre DHT + LB 13/10 DHT + Chord (1a parte) 20/10 Chord (2a parte) + Consistent Hashing 27/10 Altre DHT + LB 03/11 JXTA 10/11 JXTA 17/11 Esercitazioni (parte teorica) 24/11 ??? 1/12 Prova scritta 15/12 JXTA 22/12 ??? 24/02/2019

Le vostre domande Nessun pervenuto!!! 24/02/2019

Ancora esercizi!!! Chernoff Bound allora 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 Inoltre se >2e-1  4,43, allora

Ancora esercizi!!! 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?

Condizioni necessarie 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

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 111 001 110 010 101 011 b=3 100

Es. Chord Quanto valgono: grado? diametro? average path lenght? 000 111 001 110 010 101 011 b=3 100 Quanto valgono: grado? diametro? average path lenght? Il grado è b = log n

000 Es. Chord 111 001 110 010 101 011 b=3 100 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.

d(x,y) può essere diverso da d(y,x) 000 Es. Chord 111 001 110 010 Il diametro è b = log n 101 011 b=3 100 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). d(x,y) può essere diverso da d(y,x) Chord non è simmetrico

diametro Anello n -1 Chord e altri Grafo completo O(log n) 1 1 O(log n) n -1 grado n è il numero dei peer;

N denota l’insieme dei nodi 000 Es. Chord 111 001 110 010 101 011 b=3 100 Quanto vale l’average path lenght? N denota l’insieme dei nodi

Per semplicità consideriamo un sistema Chord like Sistemi P2P uniformi k=grado l=diametro 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: Si a è un generico nodo  N

Sistemi P2P uniformi Vantaggi: Svantaggi: 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ò

Es. Chord Quanto vale l’average path lenght? 000 111 001 110 010 101 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; 110 010 101 011 b=3 100 00…0 00…1 … 11…0 11…1 a

Altre DHT?

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;

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)

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)

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:

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 al 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

Dall’Ipercubo alla Butterfly Un nodo u è connesso con tutti i nodi che differiscono di un solo bit da u Nodi = n=2r Archi = r 2r-1 Bisezione = n/2 Diametro = log n Butterfly (r dimensioni) 2r righe e r+1 colonne Nodo 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 nodi Archi = r2r+1 Bisezione O(n/log n) Diametro O(log n) r=3

Butterfly (FFT) Network 1 2 3 000 001 010 011 100 101 110 111 000 001 010 011 100 101 110 111

Butterflies

Decomposing a Butterfly

Decomposing a Butterfly

Decomposing a Butterfly

Decomposing a Butterfly

Decomposing a Butterfly II

Decomposing a Butterfly II

Decomposing a Butterfly II

Decomposing a Butterfly II

Decomposing a Butterfly II

Decomposing a Butterfly II

Decomposing a Butterfly II

Routing on a Butterfly 1 2 000 000 001 001 010 010 011 011 100 100 101 101 110 110 111 111

DHT: Routing (Viceroy)

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;

Fault tolerance and degree k=grado l=diametro 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

Stiamo cercando dei Lower Bound 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? Chord, tapestry, pasty… Stiamo cercando dei Lower Bound

Ma allora Chord non è ottimale!!! k=grado l=diametro P2P: Lower Bound Teorema Dato 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!!!

Il grado in ingresso della radice è n-1 P2P: Lower Bound (Esempio 1) r 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 … … … Il grado in ingresso della radice è n-1

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 … … …

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 … … 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

P2P: Lower Bound sistemi uniformi Teorema 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/2log n (l ≥ 1/2log n ) se k  1/2log n.

P2P: Lower Bound sistemi uniformi Teorema 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).

diametro Anello n -1 Chord e altri Grafo completo LB O(log n) O(log n/ log(log n)) 1 1 O(log n) n -1 grado n è il numero dei peer;

E’ possibile fare meglio di Chord, si può arrivare a 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)

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)

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)

Grazie per l’attenzione 24/02/2019