Presentazione del progetto di: Reti di calcolatori L-S Matteo Corbelli.

Slides:



Advertisements
Presentazioni simili
DiFMon Distributed Flow Monitor Claudio Mazzariello, Francesco Oliviero, Dario Salvi.
Advertisements

Premessa: si assume di aver risolto (correttamente
Tecnologia delle basi di dati: Strutture fisiche di accesso
Procedure e funzioni A. Ferrari.
Realizzazione di un componente per un sistema dedicato: sviluppo dell’algoritmo di crittografia RC6 a 128 bit Relatore: Prof. Fabrizio Ferrandi Correlatore:
Liste di Interi Esercitazione. Liste Concatenate Tipo di dato utile per memorizzare sequenze di elementi di dimensioni variabile Definizione tipicamente.
di Architetture Peer to Peer per la Gestione di Database Distribuiti
Obiettivo della tesi Percorso
Routing Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© All Rights Reserved)
RB-alberi (Red-Black trees)
Hash Tables Indirizzamento diretto Tabelle Hash Risoluzioni di collisioni Indirizzamento aperto.
Alberi binari di ricerca
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 29/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
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.
Ricerca della Legge di Controllo
Sistemi Peer To Peer (P2P) Avanzati Gennaro Cordasco Gennaro Cordasco
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.
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.
Le classi Definizione di classe Attributi e metodi di una classe Costruttori e distruttori Private e public Funzioni friend Il puntatore this.
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
Fondamenti di Informatica1 Ripetizioni di segmenti di codice Spesso è necessario ripetere più volte uno stesso segmento dell'algoritmo (e.g. I/O, elaborazioni.
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 Facciamo un piccolo test Quanti successori ha un nodo nel protocollo Chord? (m) (1) (log N) (nessun prec.) Aumentando il numero di identificatori.
Algoritmi e Programmazione Avanzata
Supporto per servizi di File Hosting Presentazione di progetto per lesame di Reti di Calcolatori LS Valerio Guagliumi
Progetto Di Uninfrastruttura Che Permetta La Modifica Di Dati Condivisi Distribuiti Su Più Nodi Reti di calcolatori L-S Gozzi Daniele
Progetto PERMESSO PERsistent MESSaging in ad hOc networks Presentazione di Vitalone Giuseppe.
Reti L-S 2005 Servizio per la ricerca distribuita basato sul protocollo Rossi Daniele
PERMESSO PERsistent MESSaging in ad hOc networks Corso di Reti di Calcolatori L-S AA Presentazione di Roberto Gamboni Progetto di Giuseppe Vitalone,
Progetto di una architettura per lesecuzione distribuita e coordinata di azioni Progetto per lesame di Reti di Calcolatori L-S Prof. Antonio Corradi Finistauri.
DEIS Università di Bologna
Progetto di Reti di Calcolatori LS a cura di Gesualdi Marco Miniello Giuseppe Vukovic Veljko.
Reti di Calcolatori L-S Un Sistema Decentrato di Allocazione del Carico per Applicazioni di Calcolo Distribuito Mauro Bampo.
Distributed File System Service Dario Agostinone.
U N INFRASTRUTTURA DI SUPPORTO PER SERVIZI DI FILE HOSTING Matteo Corvaro Matricola Corso di Reti di Calcolatori LS – Prof. A. Corradi A.A.
BROKER SERVER Progetto di Ingegneria del Web 2008 Alessio Bianchi Andrea Gambitta Giuseppe Siracusano.
Programmazione di Calcolatori
Programmazione di Calcolatori
Servizi Grid ed agenti mobili : un ambiente di sviluppo e delivering
Programmazione di Calcolatori
David Novak and Pavel Zezula GRUPPO 13 Decorte Andrea Giammarino Giuseppe.
FTP File Transfer Protocol
Implementazione di dizionari Problema del dizionario dinamico Scegliere una struttura dati in cui memorizzare dei record con un campo key e alcuni altri.
Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati.
Progetto di un Agente per l’Apprendimento mediante Alberi Decisionali in ambito distribuito Studente: Luca Monaco Anno Accademico
Gestione dei dispositivi di I/O:
MySQL Database Management System
Producer – Consumer System Di Carlo Matteo CdLS Ingegneria Informatica (0234) Reti di Calcolatori LS A.A. 2004/2005.
MCSA Mobile Code System Architecture Infrastruttura a supporto della code mobility Pierfrancesco Felicioni Reti di Calcolatori L.S. 2005/2006.
Progetto di: Daniele De Angelis Corso di: Reti di Calcolatori LS Un sistema fault tolerance per protocollo Diffie-Hellman.
Supporto alla comunicazione di gruppo context aware per membri disconnessi. Reti di Calcolatori LS aa 2005/2006 Bruno Docimo
Supporto per la replicazione attiva di servizi Progetto per il corso di Reti di Calcolatori LS Montanari Mirko Matr:
Infrastruttura per la gestione distribuita di un sistema di prenotazione Progetto di: Fabio Fabbri Matricola
Overlay network strutturate per applicazioni peer to peer Lorenzo Castelli.
PERMESSO PERsistent MESSaging in ad hOc networks Corso di Reti di Calcolatori LS – AA Presentazione di Davide Sansovini Professore: Antonio Corradi.
Servizio di newsgroup con replicazione dei server Studente: Letizia Cheng Cheng Sun Matricola: Reti di Calcolatori LS – Prof. A. Corradi A.A. 2003/2004.
Reti di calcolatori LS1 Service Middleware Reti di calcolatori LS progetto di Andrea Belardi Infrastruttura dedicata alla gestione di servizi disponibili.
B3Discovery: Infrastruttura di Discovery distribuita utilizzando l’architettura JXTA Corso di Reti di Calcolatori L-S prof. Antonio Corradi A.A 2005/2006.
Progetto e Realizzazione di un servizio di Chat Progetto di: Nicoli Leonardo Corso di: Reti di Calcolatori L-S.
Middleware per la sincronizzazione di ambienti eterogenei Progetto di Reti di Calcolatori LS Emanuele Crescentini matr Ingegneria Informatica LS.
Progetto RE.VE.N.GE. MQ REliable and VErsatile News delivery support for aGEncies Sistema di Distribuzione Reti di Calcolatori LS – Prof. Antonio Corradi.
B IBLIO S ERVICE consultazione di articoli online Anna Riccioni Progetto per il corso di Reti di Calcolatori L-S Anno Accademico
Alex Marchetti Infrastruttura di supporto per l’accesso a un disco remoto Presentazione del progetto di: Reti di calcolatori L-S.
SnippetSearch Database di snippet bilanciato e replicato di Gianluigi Salvi Reti di calcolatori LS – Prof. A.Corradi.
JDICS Java Dynamic Infrastructure for C/S systems Laura Galli matr Reti di calcolatori LS, Prof. A.Corradi A.A
Fondamenti di Informatica L- A Alcune considerazioni sul progetto di soluzioni software 12.
Transcript della presentazione:

Presentazione del progetto di: Reti di calcolatori L-S Matteo Corbelli

Sommario Obiettivi Descrizione del Sistema Implementazione Conclusioni

Obiettivi Realizzazione uninfrastruttura per la locazione di file nel distribuito Assegnamento di una chiave per ogni file Ricerca per tale chiave del nodo responsabile e allocazione Implementazione delle operazioni di gestione dei nodi del sistema Join Leave

Architettura del Sistema Larchitettura è quella di un anello identifier circle La posizione di un nodo è data dallidentificativo assegnatole dalla funzione hash Ogni chiave k viene assegnata al primo nodo il cui identificativo è uguale o segue k nello spazio degli identificativi

Struttura di un nodo Ogni nodo ha la seguente struttura Successore Predecessore Finger Table: tabella di m elementi (serve per lefficienza dellalgoritmo) Vettore delle chiavi di cui il nodo è responsabile I-esimo elemento della finger table Finger[i].start = (n+2 i-1 )mod 2 m Finger[i].interval = [finger[i].start,finger[i+1].start) Finger[i].node = primo nodo maggiore o uguale a finger[i].start

Funzionalità del Sistema Locazione di una chiave Join di un nodo n Leave di un nodo

Locazione di una chiave Ogni id di una chiave k viene assegnato al nodo successore successor(k) Le richieste possono essere passate lungo lanello attraverso i successori Inefficienza (potrebbe richiedere di esplorare tutto lanello) Utilizzo delle Finger Table Cosa succede se il nodo n non conosce il successore di k? Es. nodo 3 vuole trovare successor(1)

Implementazione della locazione Allocazione di un dato, con identificativo keyId, attraverso lindirizzo di un nodo n della rete conosciuto Richiesta find_successor_key(keyId) al nodo n per trovare il successore di keyId Caso 2: keyId compreso tra lid del nodo e lid del suo successore 1. n restituisce il successore find(n.successor) 2.viene effettuato sul nodo restituito il trasferimento del dato transfer(keyId) Caso 1: keyId non compreso tra lid del nodo e lid del suo successore n restituisce li-esimo finger per cui keyId appartiene a finger[i].interval a cui inoltrare una nuova richista redirect_request(n.finger[i])

Join di un nodo n Ogni nodo n che entra nel sistema deve eseguire tre fasi: 1. Inizializzare predecessore, successore e Finger Table 2. Aggiornare Finger Table, successori e predecessori per riflettere laggiunta di n 3. Notificare a livello software più alto in modo che si possa trasferire lo stato associato alle chiavi di cui il nodo n ora è responsabile

Implementazione del Join Inizializzazione predecessore, successore e Finger Table da parte del nodo con identificativo nodeId attraverso il nodo conosciuto n 1. Richiesta find_predecessor(nodeId) al nodo n per trovare il predecessore di nodeId 2. Ricezione del nodo che precede e del suo successore find(n, n.successor) 3. Inizializzazione del predecessore a n e del successore a n.successor 4. Aggiornamento del predecessore set_successor(this) 5. Aggiornamento del successore set_predecessor(this) 6. Inizializzazione della Finger Table Anticipati per evitare overhead di comunicazione n controlla se li-esimo finger è anche li+1-esimo finger corretto, per ogni i. Questo avviene quando finger[i].interval non contiene alcun nodo, e quindi finger[i].node >= finger[i+1].start

Implementazione del Join Aggiornamento delle Finger Table dei nodi del sistema Il nodo n diventerà li-esimo finger del nodo p se e solo se: 1.p precede n di almeno 2 i-1 2.li-esimo finger del nodo p succede n Calcola id=n-2 i-1 e ricerca il suo predecessore find_predecessor(id) Al nodo restituito invia la richiesta di aggiornamento update_finger_table(this,i) Il nodo verifica se li-esimo finger deve essere modificato (lid del nuovo nodo è compreso tra il proprio id e quello delli-esimo finger) Verifica positiva 1.Modifica delli-esimo finger 2.Restituzione del predecessore (iterazione delloperazione) Verifica negativa 1.Terminazione

Implementazione del Join Notifica per il trasferimento di file 1. Connessione al successore (attuale responsabile di tutte le chiavi che potrebbero migrare nel nodo n) update_vector_key(this.id) 2. Il successore per ogni chiave che detiene verifica se è ancora sotto la sua responsabilità o meno 3. In caso non sia più suo compito tenere la chiave si passa al trasferimento transfer(keyId)

Leave di nodo e implementazione Ogni nodo n quando lascia il sistema deve: 1. Rimuovere se stesso da successore e predecessore di altri nodi set_predecessor(this.successor) set_successor(this.predecessor) 2. Rimuovere i riferimenti a se dalle Finger Table (procedura simile a quella di aggiornamento) delete_me_from_finger_table(this.id,i,this.successor) 3. Trasferimento di tutti i propri dati al successore transfer_key(keyId)

Conclusioni E stato sviluppato un sistema per la locazione di file nel distribuito Sviluppi Futuri 1. Tolleranza alla caduta di un nodo non volontaria 2. Implementazione di un algoritmo meno invasivo ma più efficiente in cui le finger table non vengono aggiornate ad ogni join ma ad istanti di tempo