Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5 DISTRIBUTED SYSTEMS.

Slides:



Advertisements
Presentazioni simili
Unità D1 Architetture di rete.
Advertisements

ISA Server 2004 Enterprise Edition Preview. ISA Server 2004.
Struttura dellinterfaccia SBN2 Mauro Narbone Udine 20 Aprile 2006.
Routing Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© All Rights Reserved)
La Modifica dei Dati in una Base Dati La modifica dei dati contenuti allinterno di una base dati è unoperazione delicata Infatti, ogni potenziale problema.
1 Capitolo 2: Semplificazione, Ottimizzazione e Implicazione.
Gestione dei dischi RAID
Disco magnetico (2) Ciascuna traccia è divisa in settori
Le comunicazioni ordinate. Comunicazioni Ordinate E importante (e utile) definire delle primitive di comunicazione che diano qualche garanzia sullordine.
BRISCOLA GO ON AVANTI. Storia I giochi di carte hanno le origini più disparate e vengono collocati in differenti epoche, la Briscola risale al La.
Queuing or Waiting Line Models
Introduzione a AJAX - Asynchronous Javascript And Xml
11 1 Roma, 11 dicembre 2006 Laura Gasparini Garanzia su Portafogli Estero.
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
Proxy-based infrastructure for LBS availability Reti di Calcolatori L-S Andrea Licastro
Reti L-S 2005 Servizio per la ricerca distribuita basato sul protocollo Rossi Daniele
JARS JavaActiveReplicationSupport Anno Accademico Bellocchi Marco Maria.
Progetto di una architettura per lesecuzione distribuita e coordinata di azioni Progetto per lesame di Reti di Calcolatori L-S Prof. Antonio Corradi Finistauri.
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.
La sicurezza può essere fornita in ciascuno degli strati: applicazione, trasporto, rete. Quando la sicurezza è fornita per uno specifico protocollo dello.
Benvenuti a Un incontro informativo di grande valore ed alto contenuto sulla Virtualizzazione e sistemi ad alta disponibiltà per le PMI.
Capitolo 20: Sistemi multimediali
U N INFRASTRUTTURA DI SUPPORTO PER SERVIZI DI FILE HOSTING Matteo Corvaro Matricola Corso di Reti di Calcolatori LS – Prof. A. Corradi A.A.
Secure Socket Layer (SSL) Transport Layer Security (TLS)
File system distribuito transazionale con replicazione
Reti di calcolatori LS Manni Tiziano  IT e nuovi scenari applicativi …  … portabilità dei dati …  … condivisione dati …  … disponibilità.
Distributed System ( )7 TCP/IP four-layer model.
Dischi in RAID  Redundant Array of Independent Disk Configurazione che permette di combinare più dischi secondo obiettivi di performance e ridondanza.
Ontologia AA F. Orilia. Lez. 16 Discussione dell'approccio controfattualista di lewis condotta da Antonio De Grandis.
4/20/20151 Metodi formali dello sviluppo software a.a.2013/2014 Prof. Anna Labella.
Love, Love, Love. Love, Love, Love. Love, Love, Love. There's nothing you can do that can't be done. Nothing you can sing that can't be sung. Nothing.
SCOPA Avanti.
© Copyright NTT DATA Italia – All Rights Reserved The information contained in this document is the property of NTT DATA Italia S.p.A. and the addressee.
Taccani1 7.4 Identification ANALISI DEI PERICOLI Hazard Analysis Identificazione Valutazione Misure di Controllo Control Measures Assessment.
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.
1 Alcuni esempi di dispositivi (2) Disco rigido, RAID, video.
Studio di una soluzione distribuita per la gestione di un centro sondaggi.
Extension pack per IIS7 Piergiorgio Malusardi IT Pro Evangelist
Supporto per la replicazione attiva di servizi Progetto per il corso di Reti di Calcolatori LS Montanari Mirko Matr:
Un problema multi impianto Un’azienda dispone di due fabbriche A e B. Ciascuna fabbrica produce due prodotti: standard e deluxe Ogni fabbrica, A e B, gestisce.
PROTOTIPO DI UN GIOCO DI STRATEGIA IN RETE Alberto Buccella Università degli studi di Bologna Facoltà di Ingegneria Corso di Ingegneria Informatica.
Progetto di un Group Communication System Reti di Calcolatori LS A.A Giampaolo Capelli.
STUDIO SULLA REPLICAZIONE DEGLI AGENTI NEL SISTEMA SOMA Andrea Sambi.
P2P Reliable Multicast Messenger Progetto e realizzazione di un software peer to peer per comunicazioni di gruppo.
Progetto di un sistema di comunicazione di gruppo con multicast causale Reti di Calcolatori L-S Marco Canaparo Matricola
Il Consenso. Problema del Consenso Il gruppo di processi devono mettersi d’accordo su un valore (es. commit/abort di una transazione). E’ l’astrazione.
Sistema distribuito per il controllo remoto di Software SCADA HMI Presentazione di Paolo di Francia Reti di Calcolatori LS a.a
Università degli studi di L’Aquila Anno Accademico 2006/2007 Corso di: Algoritmi e Dati Distribuiti Titolare: Prof. Guido Proietti Orario: Martedì:
Accoppiamento scalare
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
SUMMARY Time domain and frequency domain RIEPILOGO Dominio del tempo e della frequenza RIEPILOGO Dominio del tempo e della frequenza.
SUMMARY Quadripoles and equivalent circuits RIEPILOGO Quadripoli e circuiti equivalenti RIEPILOGO Quadripoli e circuiti equivalenti.
L A R OUTINE D EL M ATTINO Ellie B.. Io mi sono svegliata alle cinque del mattino.
SUMMARY Different classes and distortions RIEPILOGO Le diverse classi e le distorsioni RIEPILOGO Le diverse classi e le distorsioni.
Filtri del secondo ordine e diagrammi di Bode
Project Review Novembrer 17th, Project Review Agenda: Project goals User stories – use cases – scenarios Project plan summary Status as of November.
Texts are cooperatively generated by the addressee.
Language of Algebra.
Language of Algebra. Basic concepts Key words Practice exercises Basic concepts Key words Practice exercises.
MAGAZZINI AUTOMATICI AUTOMATIC STORAGE SYSTEM. TIPOLOGIE MAGAZZINI WAREHOUSE TYPES Magazzino tradizionale Traditional warehouse Cantilever Magazzino pile.
Buon giorno, ragazzi oggi è il quattro aprile duemilasedici.
Anno Architetture dati - DBMS Centralizzati Recovery management Carlo Batini.
STMan Advanced Graphics Controller. What is STMan  STMan is an advanced graphic controller for Etere automation  STMan is able to control multiple graphics.
I segnali odorosi Le piante comunicano tra loro attraverso la trasmissione di composti organici volatili (in forma gassosa). The plants communicate with.
Do You Want To Pass Actual Exam in 1 st Attempt?.
Transcript della presentazione:

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN Chapter 8 Fault Tolerance

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Fault Tolerance Basic Concepts Being fault tolerant is strongly related to what are called dependable systems Dependability (attendibilità) implies the following: 1.Availability (disponibilità) 2.Reliability (affidabilità) 3.Safety 4.Maintainability

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Fault Tolerance Basic Concepts failure: il sistema non “mantiene le promesse”, es. alcuni servizi non vengono (comlpetamente) forniti; error: stato del sistema che porta a failure; fault: causa di un errore: –transient fault; –intermittent fault; –permanent fault.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Failure Models Figure 8-1. Different types of failures.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Failure Models Fallimenti arbitrari: difficili da riconoscere e gestire (bizantini…); fail-safe: il sistema può produrre dati arbitrari ma è in grado di riconoscere queste situazioni e gestirle;

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Failure Masking by Redundancy ridondanza informativa; –Aggiunta di informazioni aggiuntive, es. codici di Hamming. ridondanza temporale; –Ripetizione delle azioni, finchè non hanno successo. ridondanza fisica (in hardware o in software) –I processi (macchine) vengono replicati.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Failure Masking by Redundancy Figure 8-2. Triple modular redundancy.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Process resilience Protezione contro i fallimenti dei processi: –Replica e raggruppamento dei processi. Resilienza (resistenza): –capacità di un materiale di resistere a deformazioni o rotture dinamiche, rappresentata dal rapporto tra il lavoro occorrente per rompere un’asta di tale materiale e la sezione dell’asta stessa: indice, valore di r. –capacità di un filato o di un tessuto di riprendere la forma originale dopo una deformazione.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Process resilience: grouping Raggruppamenti di processi identici (replicati): –Replica e raggruppamento dei processi ; –Un gruppo permette la gestione di collezioni di processi. I messaggi vengono ricevuti dall’intero gruppo di processi: se uno fallisce gli altri possono intervenire. I gruppi vengono gestiti dinamicamente.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Flat Groups versus Hierarchical Groups Figure 8-3. (a) Communication in a flat group. (b) Communication in a simple hierarchical group.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Gestione dei gruppi Centralizzata: group server; Decentralizzata: –multicast ai membri di un gruppo; –riconoscimento dei crash e rimozione dai gruppi;

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Mascheramento delle failure Primary-based replication: –Organizzazione gerarchica con una copia primaria che coordina; –In caso di crash della copia primaria un algoritmo di elezione sceglie un’altra replica. Replicated-write protocols (active replication): –Gruppi flat; –Nessun punto critico singolo;

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Agreement in Faulty Systems Sistema “k-fault tolerant”: –Sopporta il fallimento di k elementi; –Ulteriori fallimenti generano risultati impredicibili. Es. sistema a votazione con tolleranza k sono necessare 2k+1 repliche. Con n repliche la tolleranza è n/2-1

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Agreement in Faulty Systems (1) Possible cases: 1.Synchronous versus asynchronous systems. 2.Communication delay is bounded or not: messaggi trasmessi in un tempo max. 3.Message delivery is ordered or not. 4.Message transmission is done through unicasting or multicasting.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Agreement in Faulty Systems (2) Figure 8-4. Circumstances under which distributed agreement can be reached.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Agreement in Faulty Systems (3) The Byzantine agreement problem for three non-faulty and one faulty process In questo caso i processi possono comunicare dati sbagliati; Processi sincroni; Messaggi unicast; Ordinamento dei messaggi preservato; Tempo di comunicazione limitato.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Agreement in Faulty Systems (3) Figure 8-5. The Byzantine agreement problem for three nonfaulty and one faulty process. (a) Each process sends their value to the others.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Agreement in Faulty Systems (4) Figure 8-5. The Byzantine agreement problem for three nonfaulty and one faulty process. (b) The vectors that each process assembles based on (a). (c) The vectors that each process receives in step 3.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Agreement in Faulty Systems (5) Figure 8-6. The same as Fig. 8-5, except now with two correct process and one faulty process.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved RPC Semantics in the Presence of Failures Five different classes of failures that can occur in RPC systems: 1.The client is unable to locate the server. 2.The request message from the client to the server is lost. 3.The server crashes after receiving a request. 4.The reply message from the server to the client is lost. 5.The client crashes after sending a request.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Il client non individua il server Tutti i server sono caduti; C’è un problema di versione tra stub del client e server; Soluzioni: Eccezioni; Signal handlers; …

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Perdita dei messaggi di richiesta Timers; Time-out; …

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Server Crashes (1) Figure 8-7. A server in client-server communication. (a) The normal case. (b) Crash after execution. (c) Crash before execution.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Server Crashes (1) Tipi di semantica per l’esecuzione: Esattamente una volta –semantica desiderata. Almeno una volta –In caso di fallimento si riavvia la macchina (server) e si reitera la richiesta. Al massimo una volta –In caso di fallimento si restituisce un errore Nessuna garanzia –semplice da implementare

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Server Crashes (2) Three events that can happen at the server: Send the completion message (M), Print the text (P), Crash (C).

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Server Crashes (3) These events can occur in six different orderings: 1.M →P →C: A crash occurs after sending the completion message and printing the text. 2.M →C (→P): A crash happens after sending the completion message, but before the text could be printed. 3.P →M →C: A crash occurs after sending the completion message and printing the text. 4.P→C(→M): The text printed, after which a crash occurs before the completion message could be sent. 5.C (→P →M): A crash happens before the server could do anything. 6.C (→M →P): A crash happens before the server could do anything.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Server Crashes (4) Figure 8-8. Different combinations of client and server strategies in the presence of server crashes.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Lost reply messages Misure dei time-out e ritrasmissione; Richieste indepondenti (es. lettura…) non generano effetti collaterali; Per rendere indepondenti i messaggi si può: –numerarli; –assegnare un bit che indica la ritrasmissione.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Client crash Orfani: il calcolo continua ma non c’è il client a ricevere i risultati: –Occupazione di risorse, –Blocco dei file, –… 1.Eliminazione dei processi orfani: (si individuano usando dei log); 2.Reincarnazione: i server sono legati ad un’ ”epoca” dei client, quando un client si riavvia richiede il riavvio di tutti i server legati alla precedente epoca; 3.Si può controllare che non tutti i server vengano riavviati (solo gli orfani) 4.Expiration: si assegna un tempo di esecuzione massimo.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Multicast affidabili Un messaggio inviato ad un gruppo di processi deve essere ricevuto da ciascun membro del gruppo, ma se durante la comunicazione: un nuovo processo si aggiunge al gruppo? un processo va in crash?

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Basic Reliable-Multicasting Schemes Figure 8-9. A simple solution to reliable multicasting when all receivers are known and are assumed not to fail. (a) Message transmission. (b) Reporting feedback.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Scalability in Reliable-Multicasting Per n repliche che ricevono i messaggi, ci devono essere n messaggi di ACK: feedback implosion Si possono inviare notifiche per i messaggi persi, non per quelli ricevuti: abbattimento dei feedback. Chi invia deve tener traccia della storia dei messaggi per poterli ritrasmettere in caso di necessità.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Scalable Reliable Multicasting Chi riceve un messaggio non notifica niente Vengono notificati solo i messaggi persi; La notifica viene inviata a tutti –un altro ricevente che deve segnalare la perdita di un messaggio, può inibire la propria notifica –anche i riceventi che non hanno avuto problemi devono riprocessare i messaggi.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Nonhierarchical Feedback Control Figure Several receivers have scheduled a request for retransmission, but the first retransmission request leads to the suppression of others.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Hierarchical Feedback Control Figure The essence of hierarchical reliable multicasting. Each local coordinator forwards the message to its children and later handles retransmission requests.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Atomic multicast Un messaggio deve essere spedito a tutti o a nessuno L’ordine di spedizione deve essere rispettato Es. Se un processo del gruppo va in crash, viene estromesso dal gruppo stess Il multicast avviene solo sulle repliche attive Se il processo viene ripristinato, può essere ammesso al gruppo solo quando raggiunge uno stato consistente con le altre repliche.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Atomic multicast Ogni messaggio m è associato univocamente ad una lista di processi al quale deve essere spedito

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Virtual Synchrony (1) Figure The logical organization of a distributed system to distinguish between message receipt and message delivery.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Virtual Synchrony (1) Virtual synchrony: Un messaggio multicast spedito ad un gruppo G deve essere consegnato ad ogni processo di G non fallito. Se durante l’invio un processo fallisce (crash), il messaggio deve essere inviato a tutti gli altri o a nessuno.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Virtual Synchrony (2) Figure The principle of virtual synchronous multicast.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Message Ordering (1) Four different orderings are distinguished: Unordered multicasts FIFO-ordered multicasts Causally-ordered multicasts Totally-ordered multicasts (nello stesso ordine a tutti I membri del gruppo)

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Message Ordering (2) Figure Three communicating processes in the same group. The ordering of events per process is shown along the vertical axis.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Message Ordering (3) Figure Four processes in the same group with two different senders, and a possible delivery order of messages under FIFO-ordered multicasting

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Implementing Virtual Synchrony (1) Figure Six different versions of virtually synchronous reliable multicasting.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Implementing Virtual Synchrony (1) Si deve garantire che il multicast verso un gruppo G termini prima che G possa cambiare. Ogni processo deve conservare il messaggio e processarlo solo quando è sicuro che gli altri membri del gruppo lo hanno ricevuto. Un messaggio ricevuto da tutti è detto stabile Solo i messaggi stabili possono essere consegnati

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Implementing Virtual Synchrony (2) Figure (a) Process 4 notices that process 7 has crashed and sends a view change.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Implementing Virtual Synchrony (3) Figure (b) Process 6 sends out all its unstable messages, followed by a flush message.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Implementing Virtual Synchrony (4) Figure (c) Process 6 installs the new view when it has received a flush message from everyone else.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Distributed Commit Un’operazione deve essere eseguita da ogni membro di un gruppo di processi, o da nessuno. Protocollo di commit a una fase: Un coordinatore gestisce le fasi di commit Chiede a tutti I partecipanti se eseguire o no il commit

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Two-Phase Commit (1) 1.Il coordinatore invia un messaggio VOTE_REQUEST a tutti i partecipanti 2.I partecipanti rispondono con VOTE_COMMIT o VOTE_ABORT 3.Se tutti hanno risposto VOTE_COMMIT il coordinatore invia a tutti GLOBAL_COMMIT altrimenti GLOBAL_ABORT 4.I partecipanti aspettano la risposta per eseguire le proprie azioni

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Two-Phase Commit (1) Figure (a) The finite state machine for the coordinator in 2PC. (b) The finite state machine for a participant.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Two-Phase Commit (1) Che succede se il coordinatore fallisce e non invia il messaggio GLOBAL_ a tutti i partecipanti: caso con due processi P e Q

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Two-Phase Commit (2) Figure Actions taken by a participant P when residing in state READY and having contacted another participant Q.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Two-Phase Commit (3) Figure Outline of the steps taken by the coordinator in a two-phase commit protocol....

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Two-Phase Commit (4) Figure Outline of the steps taken by the coordinator in a two-phase commit protocol....

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Two-Phase Commit (5) Figure (a) The steps taken by a participant process in 2PC.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Two-Phase Commit (7) Ogni partecipante esegue un thread per prendere una decisione in funzione dei messaggi ricevuti.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Two-Phase Commit (7) Figure (b) The steps for handling incoming decision requests..

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Two-Phase Commit (7) Il commit a due fasi è sensibile ai crash del coordinatore Viene usato perchè è comunque abbastanza robusto

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Three-Phase Commit (1) The states of the coordinator and each participant satisfy the following two conditions: 1.There is no single state from which it is possible to make a transition directly to either a COMMIT or an ABORT state. 2.There is no state in which it is not possible to make a final decision, and from which a transition to a COMMIT state can be made.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Three-Phase Commit (1) Il coordinatore invia VOTE_REQUEST a tutti e si mette in attesa Se almeno un partecipante risponde con un Abort il coordinatore effettua un GLOBAL_ABORT Altrimenti invia un messaggio PREPARE_COMMIT Quando tutti i partecipanti hanno acconsentito effettua il GLOBAL_COMMIT

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Three-Phase Commit (2) Figure (a) The finite state machine for the coordinator in 3PC. (b) The finite state machine for a participant.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Recovery Backward recovery: si vuole portare il sistema da uno stato erroneo ad uno stato precedente non erroneo: –Si registra lo stato in un determinato punto –Si ripristina il sistema dai dati salvati (chekpointing) –Es. rispedizione dei messaggi errati Forward recovery: se il sistema è in uno stato errato lo si porta in un nuovo stato dal quale l’esecuzione può continuare –Es. correzione degli errori

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Memoria stabile Memoria: –RAM –Di Massa: sopravvive ai crash di sistema ma non a quelli di disco –Stabile: sopravvive a situazioni non catastrofiche. To implement stable storage –Replicate information on more than one nonvolatile storage media with independent failure modes. –Update information in a controlled manner to ensure that we can recover the stable data after any failure during data transfer or recovery.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Recovery – Stable Storage Figure (a) Stable storage. (b) Crash after drive 1 is updated. (c) Bad spot.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved RAID (cont) Several improvements in disk-use techniques involve the use of multiple disks working cooperatively. Disk striping uses a group of disks as one storage unit. RAID schemes improve performance and improve the reliability of the storage system by storing redundant data. –Mirroring or shadowing keeps duplicate of each disk. –Block interleaved parity uses much less redundancy.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved RAID Levels

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved RAID (0 + 1) and (1 + 0)

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Checkpointing Registrazione dello stato In caso di fallimento viene ripristinato lo stato consistente più recente (recovery line) –Questo può portare ad un effetto domino –Si usano allora checkpoint indipendenti o coordinazione globale

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Checkpointing Figure A recovery line.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Independent Checkpointing Figure The domino effect.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Coordinated Checkpointing I processi si accordano su quando fare il checkpointing Un coordinatore invia il messaggio CHECKPOINT_REQUEST, e quando tutti rispondono invia CHECKPOINT_DONE

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Characterizing Message-Logging Schemes Figure Incorrect replay of messages after recovery, leading to an orphan process.

Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Log Structured File Systems Log structured (or journaling) file systems record each update to the file system as a transaction All transactions are written to a log –A transaction is considered committed once it is written to the log –However, the file system may not yet be updated The transactions in the log are asynchronously written to the file system – When the file system is modified, the transaction is removed from the log If the file system crashes, all remaining transactions in the log must still be performed