Progetto Di Uninfrastruttura Che Permetta La Modifica Di Dati Condivisi Distribuiti Su Più Nodi Reti di calcolatori L-S Gozzi Daniele
Introduzione Creazione uninfrastruttura che permetta di condividere dati: Letture su copia locale. Mantenga la consistenza tra le varie copie dei file. Permetta il lock distribuito dei file: Modifiche. Aggiornamenti. Struttura dinamica. Registrazione e de-registrazione dati. Registrazione e de-registrazione client.
Struttura Divisa in 3 parti: Client Server DBMS Devo produrre dei multicast a tutti i client registrati su un file. Il server mantiene lo stato dei nodi: Minore complessità Minore overhead.
Struttura - Server Processo che si occupa di rendere disponibili ai client i dati necessari allinterazione tra pari. Mantiene lo stato della rete. Client presenti. File condivisi. Persistenza dei dati affidata al DBMS. Richieste semplici e veloci da risolvere. Difficilmente cono di bottiglia. Facile introdurre replicazione.
Struttura - Client Interfaccia verso linfrastruttura. Etichette su ogni file. Numero logico del file. Numero fisico del file. Mantenimento dei lock sui file. Gestione algoritmo di votazione tra pari. Sincronizzazione nellaccesso ai file. Richieste al server.
Algoritmo Di Votazione Server 1: Richiesta al server 2: Elenco client interessati : Vote request. 4: Risposta positiva o meno 5a: Abort vote request. 5b: Release al termine delluso.
Ottenimento Del Lock Non cè ritrasmissione della richiesta in caso di conflitto. In alcuni client lock non memorizzato: possono essere al più N/2 –1. Solo un client può avere abbastanza risposte positive per procedere. Gli altri abortiscono la vote request. A:1ok 2 abort B:1abort 2 ok C:1abort 2 ok 1 2 Il lock è ottenuto se N/2+1 client rispondono positivamente.
Concorrenza Per rendere asincrone e parallele le richieste ad altri client. Attesa del gestore solo delle risposte necessarie per procedere Restituzione del controllo I thread del pool terminano il loro compito asincronamente
Rmi Due tipi di interfacce registrate. IServer. IClient. Utilizzo di RMI porta, sia i client sia il server, a poter gestire richieste in parallelo. Synchronized sui metodi di modifica dello stato. Controlli sul lock effettuati prima in locale.
Utilizzo Di Diverse Politiche Mutex distribuito: strumento di base per gestire la concorrenza. Default: in caso di conflitto attesa e successivi tentativi di accesso. Utilizzo dei file come contenitori di strutture per gestire laccesso a risorse: Possibilità di implementare politiche di accesso complesse. Accesso rapido al file che comporta difficilmente conflitti. In caso di conflitto ritrasmissione.
Sviluppi Introduzione dellhash dei file invece di una stringa relativa al nome. Unottimizzazione degli aggiornamenti dei file che a volte potrebbero essere evitati o effettuati solo in parte. Prevedere dei controllori sullo stato della rete che si occupino di: De-registrare client in caso di fallimenti ripetuti Reinizializzare il server in caso di crash.