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.

Slides:



Advertisements
Presentazioni simili
Training On Line - CONP. 2 Richiesta Da Menu: Conferimenti ad inizio anno termico > Agosto > Pluriennali > Nuova Richiesta Si accede alla pagina di Richiesta.
Advertisements

Algoritmi e Strutture dati Mod B
8) GLI INTERVALLI DI CONFIDENZA
Strutture dati per insiemi disgiunti
1 Pregnana Milanese Assessorato alle Risorse Economiche Bilancio Preventivo P R O P O S T A.
Informatica Generale Alessandra Di Pierro
Frontespizio Economia Monetaria Anno Accademico
Algoritmi e Strutture Dati
Lez. 91 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Alberi di ricerca.
Cammini minimi con una sorgente
RB-alberi (Red-Black trees)
Alberi binari di ricerca
Cammini minimi con sorgente singola
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati.
Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
1 FONDAMENTI DI INFORMATICA II Ingegneria Gestionale a.a ° Ciclo Liste.
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 Lezione del 12/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Il problema del dizionario
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 6 Il problema.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 6 Il problema.
Interrogazioni su un albero binario di ricerca Search(S,k) – dato un insieme S ed un valore chiave k restituisce un puntatore x ad un elemento in S tale.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 6 Rotazioni.
Algoritmi e Strutture Dati Alberi Binari di Ricerca.
Algoritmi e Strutture Dati (Mod. B)
Algoritmi e Strutture Dati
Trovare il percorso minimo da b ad ogni altro vertice
Memorie Condivise Distribuite
BIOINGEGNERIA S. Salinari Lezione 6.
Peer To Peer (o quasi) Gennaro Cordasco.
Sistemi Peer To Peer (P2P) Avanzati Gennaro Cordasco Gennaro Cordasco
Algoritmi e Strutture Dati 20 aprile 2001
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)
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.
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.
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.
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)
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 :-)
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
1 Negozi Nuove idee realizzate per. 2 Negozi 3 4.
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
RB-insert(T, z) // z.left = z.right = T.nil Insert(T, z) z.color = RED // z è rosso. Lunica violazione // possibile delle proprietà degli alberi // rosso-neri.
PARTE PRIMA: Reti Cablate
David Novak and Pavel Zezula GRUPPO 13 Decorte Andrea Giammarino Giuseppe.
Esercizi su alberi binari di ricerca
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
Minimo comune multiplo
Massimo comun divisore
Algoritmi e Strutture Dati
1 Esercitazione Sistemi distribuiti: sistemi che risisedono su più calcolatori interconnessi da una rete di comunicazione Algoritmi distribuiti: programmi.
Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 6 Rotazioni.
Studio di una soluzione distribuita per la gestione di un centro sondaggi.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 6 Il problema.
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Transcript della presentazione:

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 in un anello, le performance del protocollo (+) (-) (=) (nessun prec.)

Sistemi P2P Dato lanello in figura mostrare i passi della procedura lookup da 56 a 38 Mostrare la tabella dei finger del nodo 48 Quanti messaggi impiega la procedura lookup? (2) (O(m)) (log N-1) (nessun prec) Giustificare la risposta m= nodi risorse

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

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

Sistemi P2P Chord: Join Abbiamo visto che la procedura join appena definita non completa laggiornamento di tutti i link necessari. Al fine di aggiornare tutti i link del nodo sono necessari alcuni runs di stabilize (che comprende inoltre la notify) e m (O(log N) whp) runs della procedura fix.finger (sia da parte del nodo che ha effettuato la join sia da parte di altri nodi che devono aggiornare uno dei finger al nuovo nodo) –Chord non è simmetrico (Se un nodo n ha un finger su n non è detto che n ha un finger su n) Non è possibile avvertire i nodi che devono aggiornare i fingers E inoltre necessario far migrare le risorse al nuovo responsabile (il protocollo Chord non gestisce questo problema e lo rimanda allapplicazione).

Sistemi P2P Chord: Join La correttezza dei link al successore basta a garantire la correttezza delle lookup Lazy Join –Inizializza solo il successore –Periodicamente verifica successore e predecessore –Periodicamente (ma meno spesso) rinfresca il contenuto della tavola dei finger

Sistemi P2P Chord: Join e Lookup Cosa succede alla lookup a seguito di operazioni di Join? –Loperazione di Join è completamente terminata -> nessun problema –Loperazione di Join è parzialmente terminata -> la lookup potrebbe essere rallentata –Loperazione di Join è incompleta (puntatori errati oppure le risorse si trovano in una posizione inconsistente rispetto ai link nella rete) -> la lookup potrebbe fallire

Sistemi P2P Vale il seguente lemma: Se al tempo t esiste una path tra x ed y, allora per ogni t>t ci sara una path tra x ed y Per induzione sul tempo. Supponiamo che dopo t il nodo n effettua una join tra p e s due nodi nella path da x a y. Larco tra p ed s non viene toccato dalla join e quindi permane. Supponiamo avvenga una stabilize. Consideriamo il momento in cui il nodo p cambia successore (stabilize di p) da s ad n. Questo avviene perchè p ha contattato s ed s gli ha detto di n. Inoltre p<n<s. x p s y n Chord: Risultati Join

Sistemi P2P s ha saputo di n ad un tempo precedente e questo può essere avvenuto solo perchè s è stato un successore diretto di n (cioè dopo la stabilize di n). Per ipotesi induttiva se esisteva un path tra n ed s, esiste un path tra n ed s in tutti gli istanti successivi. In particolare nellistante in cui p cambia il successore. Essendo p<n<s il cambiamento del successore di p non influisce in alcun modo sulla path tra p ed s. Inoltre anche dopo il cambiamento esiste una path tra p ed s. x p s y n Chord: Risultati Join

Sistemi P2P Tutti le path tra x ed y, che utilizzavano larco tra p ed s, erano tali che p ed s erano interni ad x y. Ma tutti i nodi aggiunti allarco p s sono interni a p s ed a maggior ragione interni ad x y. Se un nodo è capace di risolvere una query, sarà sempre capace di farlo in futuro Ad un tempo prefissato dopo lultima join i puntatori al successore saranno corretti per tutti i nodi Chord: Risultati Join

Sistemi P2P E possibile mostrare il seguente teorema: Se ogni operazione di join è alternata con quella di stabilizzazione, allora dopo un fissato tempo dallultima join i puntatori al successore formano un ciclo su tutti i nodi della rete. Chord: Risultati Join

Sistemi P2P E possibile mostrare il seguente teorema: Se abbiamo una rete stabile con N nodi ed effettuiamo N join alla rete, e se tutti i puntatori ai successori sono corretti, allora il Lookup di una risorsa avrà necessità di O(log N) hops con alta probabilità. In altre parole se il tempo richiesto per aggiustare tutti i fingers è minore del tempo richiesto dalla rete per raddoppiare in taglia allora la lookup non viene asintoticamente rallentata. Chord: Risultati Join

Sistemi P2P Dim Se utilizziamo i vecchi finger arriviamo in O(log N) hops al vecchio predecessore della risorsa. In media ogni due nodi contattati uno è vecchio e quindi ha la tabella di routing corretta. Se i successori dei nuovi nodi sono corretti, in al più O(log N) passi la risorsa sarà raggiunta. Chord: Risultati Join

Sistemi P2P Chord: Failure and Replication Abbiamo detto che la correttezza del routing è garantita dal fatto che ogni nodo conosce in ogni istante il proprio successore Tuttavia questa invariante può essere compromessa dal fatto che i nodi possono cadere Per migliorare la robustezza del protocollo ogni nodo utilizza una lista di r successori (di solito r=log N) Quando il successore di un nodo n cade, n sostituisce tale successore con la seconda entry nella tabella dei successori e successivamente provvede a ricercare il successore r-esimo. In particolare, è possibile rompere il sistema solo se tutti e r i successori di un nodo cadono quasi contemporaneamente

Sistemi P2P Chord: Failure and Replication Assumiamo che p sia la probabilità che un nodo cade allistante t. La probabilità che r successori cadono contemporaneamente è p r La presenza della tabella dei successori richiede alcuni cambiamenti nel protocollo: –La procedura stabilize si deve preoccupare di mantenere corretta la tabella dei successori Il nodo n copia la tabella dei successori dal suo successore s ignora lultima entry e aggiunge in testa a tale tabella il proprio successore s Quando qualche successore fallisce il nodo n contatta il primo successore vivo s e successivamente ripristina la tabella dei successori utilizzando la tabella di s

Sistemi P2P Chord: Failure and Replication –E possibile inoltre modificare la procedura closest preceding finger in modo da valutare oltre alla tabella dei fingers anche i successori. (si ottengono miglioramenti ma il costo della lookup rimane O(log N)) –Inoltre è necessario modificare la procedura lookup (findsuccessor) che fallisce se incontra un successore down (la procedura infatti viene rilanciata dopo un breve intervallo di tempo, che dovrebbe servire a ripristinare il link al successore)

Sistemi P2P Chord: Failure and Replication Risultati Assumiamo che la lista dei successori è lunga r= (log N) Teorema –In una rete inizialmente stabile, se assumiamo che ciascun nodo cade con probabilità ½, allora la lookup sarà corretta Dim Affinchè la lookup sia corretta è necessario che lanello non sia rotto. Lanello si rompe con probabilità (1/2) r =1/N k se r= k log N Altamente improbabil e

Sistemi P2P Chord: Failure and Replication Risultati Assumiamo che la lista dei successori è lunga r= (log N) Teorema –In una rete inizialmente stabile, se assumiamo che ciascun nodo cade con probabilità ½, allora WHP la lookup impiega O(log N) msg Dim sketch Se ogni nodo è caduto con probabilità 1/2, ogni due link ne funziona almeno 1, Se il finger di cui abbiamo necessità è caduto possiamo usare un finger più corto: invece di dimezzare la distanza la riduciamo a circa ¾ della distanza precedente. Ma log 4/3 N = O(log N).

Sistemi P2P Chord: Failure and Replication Consisten Hashing –Il fatto che lassegnazione degli ID avviene utilizzando consistent hashing, non è possibile per un avversario creare dei nodi in una posizione prefissata del ring. Non è possibile appropriarsi di una risorsa Non è possibile rompere lanello utilizzando r nodi fittizi Siccome abbiamo visto che gli r successori di un nodo n cadono contemporaneamente con bassissima probabilità è naturale pensare a questi nodi per le repliche delle risorse gestite dal nodo n. –Altre possibilità Diverse funzioni hash Repliche in posizioni speculari (Es r repliche) (ID, ID+2 m /r mod 2 m, ID+2 2 m /r mod 2 m,, ID+(r-1) 2 m /r mod 2 m )

Sistemi P2P Chord: Leave Siccome il protocollo descritto finora è corretto anche in caso di fallimenti per i nodi potremmo gestire la leave come un fallimento, tuttavia è preferibile, per migliorare le prestazioni del sistema, adottare alcuni accorgimenti, quando un nodo si disconnette volontariamente dalla rete –Il nodo che lascia la rete trasferisce le proprie risorse al suo successore notifica ai propri vicini (predecessore e successore) che sta uscendo dal sistema. In particolare comunica il predecessore al suo successore e il successore al suo predecessore, in questo modo i due vicini possono connettersi senza utilizzare la stabilize/notify

Sistemi P2P Chord: Realistic Analysis Il sistema appena descritto è un sistema dinamico particolarmente difficile da analizzare analiticamente (senza esemplificazioni). In particolare tutte le dimostrazioni analizzate partono da una configurazione stabile, tuttavia: a Chord ring will never be in a stable state; instead, joins and departures will occur continuously, interleaved with the stabilization algorithm. The ring will not have time to stabilize before new changes happen.

Sistemi P2P Chord: Valutazione Lookup veloci in sistemi di grandi dimensioni Variazione contenuta del costo di lookup Robusto rispetto a molti tipi di fallimento Gli esperimenti confermano i risultati teorici

Sistemi P2P il costo è O(log N) come previsto dalla teoria la costante è 1/2 Number of Nodes Average Messages per Lookup Chord: Valutazione

Sistemi P2P Conclusioni A differenza dei sistemi precedenti, Chord si adatta ad ambienti dinamici (tipici dei sistemi P2P) Based on theoretical work (Consistent Hashing) Proximity-based routing Chord è uniforme (routing greedy è ottimale) Chord non è simmetrico –Alcune procedure causano utilizzo di banda anche se non ci sono cambiamenti nella rete La Join costa O(log 2 N)

Sistemi P2P Riferimenti S. Ratnasamy, S. Shenker, and I. Stoica. Routing algorithms for DHTs: Some open questions. In 1st International Peer To Peer Systems Workshop (IPTPS02). I. Stoica, R. Morris, D. Liben-Nowell, D. R. Karger, M. F. Kaashoek, F. Dabek, H. Balakrishnan, Chord: A Scalable Peer-to-peer Lookup Protocol for Internet Applications. In IEEE/ACM Trans. on Networking, 2003.

Sistemi P2P Partendo dalla figura, descrivere la procedura Join Descrivere le varie tecniche di replicazione e analizzarne vantaggi e svantaggi 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 a c b

Sistemi P2P Una chiave (risorsa) è memorizzata nel primo nodo che segue in senso orario ID a 7-bit 0 IP= Chiave=LetItBe Consistent Hashing [Karger et al 97]

Sistemi P2P Consistent Hashing [Karger et al 97]

Sistemi P2P 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 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 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 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 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 Sia I linsieme delle risorse e B linsieme delle possibili posizioni Ovviamente le possibili configurazioni del sistema sono 2 B Quello che cerchiamo è una funzione f:2 B I -> B Se V è una configurazione (V 2 B ) è ovvio che f(V,id) V, per qualsiasi id Consistent Hashing [Karger et al 97]

Sistemi P2P 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 V 1 a V 2 con V 1 V 2, la migrazione dei dati deve avvenire solo verso posizioni appartenenti a V 2 \V 1, ma non a V 1. Se V 1 V 2, f(V 2, i) V 1 allora f(V 1, i) = f(V 2, i) Consistent Hashing [Karger et al 97] I dati si devono muovere solo se è necessario

Sistemi P2P 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 Funzioni Hashing Consistenti esistono ? Siano K(x) ed N(x) due funzioni casuali che hanno come codominio lintervallo [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 0 1 F precedentemente definito: Bilanciamento ? Monotonicità ? Spread ? Carico ? Consistent Hashing [Karger et al 97]