8 Tecniche di recovery



Documenti analoghi
Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Recovery manager Gestore della affidabilità

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Transazioni. Capitolo 13. Scrittura immediata e scrittura differita. Concorrenza in un DBMS. Una transazione. Gestione delle transazioni

Introduzione all Architettura del DBMS

Sistemi di gestione delle basi di dati. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

L architettura di un DBMS

Basi di Dati prof. A. Longheu. 5 Progettazione fisica

Esecuzione concorrente di transazioni

Transazioni. Architettura di un DBMS. Utente/Applicazione. transazioni. Transaction Manager. metadati, statistiche.

File system II. Sistemi Operativi Lez. 20

Pag. 1. Gestione delle transazioni. Linguaggio SQL: costrutti avanzati. Esempio applicativo. Gestione delle transazioni. Prelievo. Esempio applicativo

Linguaggio SQL: costrutti avanzati

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

Sistemi transazionali. sistemi transazionali 1

Gestione della memoria centrale

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

Il Sistema Operativo: il File System

Tecnologia di un Database Server (centralizzato) Gestione dell affidabilità

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

Introduzione al data base

Gestione del workflow

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

Tecnologia di un Database Server (centralizzato) Introduzione generale

Olga Scotti. Basi di Informatica. File e cartelle

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Data Base Management System. Strumenti: Formato: Pro: Contro: Software specifico. Proprietario

DESIGNAZIONE: Rappresenta una relazione tra due entità di tipo 1 ad M. Esempio tipico è : REPARTO IMPIEGATO

Consiglio regionale della Toscana. Regole per il corretto funzionamento della posta elettronica

SISTEMI OPERATIVI DISTRIBUITI

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

B+Trees. Introduzione

12. Implementazione di un File System Struttura a livelli Allocazione contigua

STRUTTURE DEI SISTEMI DI CALCOLO

Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1

Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

Gestione delle Cartelle dei Messaggi di Posta Elettronica

Sistemi Operativi. 5 Gestione della memoria

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007

MANUALE UTENTE Fiscali Free

1.4b: Hardware. (Memoria Centrale)

Tratti dal cap. 9 di: Atzeni, Ceri, Paraboschi, Torlone Basi di Dati II edizione, 1999, McGraw-Hill

Capitolo Silberschatz

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Gestione eventi di sistema Gestire correttamente la diagnostica di Windows

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Materiali per il modulo 1 ECDL. Autore: M. Lanino

Corso di Basi di Dati e Conoscenza

Gestione Forniture Telematiche

Laboratorio di Informatica

SOMMARIO... 3 INTRODUZIONE...

FOXWave Gestione gare ARDF IZ1FAL Secco Marco Sezione ARI BIELLA

Memoria Virtuale. Anche la memoria principale ha una dimensione limitata. memoria principale (memoria fisica) memoria secondaria (memoria virtuale)

ControlloCosti. Cubi OLAP. Controllo Costi Manuale Cubi

Guida Rapida all uso del License Manager di ROCKEY4Smart (V )

Tecnologia di un Database Server (centralizzato) Gestione del buffer

DBMS (Data Base Management System)

CAPITOLO 7 - SCAMBIO DI MESSAGGI

9. Memoria Virtuale. 9. Memoria Virtuale. 9. Memoria Virtuale

LABORATORIO DI SISTEMI

MANUALE PARCELLA FACILE PLUS INDICE

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

Plate Locator Riconoscimento Automatico di Targhe

Come usare P-touch Transfer Manager

Organizzazione degli archivi

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Progettaz. e sviluppo Data Base

Configurazione della ricerca desktop di Nepomuk. Sebastian Trüg Anne-Marie Mahfouf Traduzione della documentazione in italiano: Federico Zenith

Guida Compilazione Piani di Studio on-line

Gestione ed analisi di base dati nell epidemiologia. delle malattie infettive

La soluzione software per Avvocati e Studi legali

START Easy GO! Il gestionale sempre in tasca! Procedura di aggiornamento. Documentazione utente Pagina 1 di 18

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

Il linguaggio SQL: trigger. Versione elettronica: 04.7.SQL.trigger.pdf

PROCEDURA DI CHIUSURA ANNO FISCALE 2006 CON E-SHOP

Capitolo 13. Interrogare una base di dati

Base di dati e sistemi informativi

DB - Cenni sulla gestione delle transazioni

Protocollo di tracciamento e valutazione degli studenti dei corsi di italiano ICoNLingua A.A

Access. Microsoft Access. Aprire Access. Aprire Access. Aprire un database. Creare un nuovo database

HBase Data Model. in più : le colonne sono raccolte in gruppi di colonne detti Column Family; Cosa cambia dunque?

5-1 FILE: CREAZIONE NUOVO DOCUMENTO

Lezione 1. Introduzione e Modellazione Concettuale

CONFIGURAZIONE E GESTIONE DEI DATABASE (rev. 1.1)

Reti diverse: la soluzione nativa

Server Galileo.

Word processor funzione Stampa Unione

Implementazione dei monitor tramite semafori Attesa condizionale Sincronizzazione nei sistemi operativi reali Transazioni atomiche

Transcript:

8 Tecniche di recovery Se viene sottomessa una transazione T, o tutte le operazioni di T sono completate ed il loro effetto è registrato permanentemente nel DB, o T non ha nessun effetto né sul DB né su altre transazioni (failure). Nel secondo caso, il sistema non può permettere che alcune operazioni di T siano portate a termine ed altre no. Effettuare un recovery (o recupero) da una transizione fallita significa ripristinare il database al più recente stato consistente appena prima del failure. Per fare ciò, il sistema deve tener traccia dei cambiamenti causati dall esecuzione di transazioni. Tali informazioni sono memorizzate nel system log. Strategie di recovery tipiche: 1. Se il danno è notevole, a causa di un failure catastrofico (es. crash di un disco), si ripristina una precedente copia di back-up da una memoria di archivio e si ricostruisce lo stato più vicino a quello corrente riapplicando (redo) tutte le transazioni completate salvate nel log fino al momento del failure. 2. Se, a seguito di un failure non catastrofico, il database non è danneggiato fisicamente, ma è solo in uno stato inconsistente, si effettua l undo delle operazioni che hanno causato l inconsistenza. Eventualmente si effettua il redo di alcune operazioni. Non è necessario effettuare il restore del database, poiché basta la consultazione del system log. Concettualmente possiamo distinguere due tecniche principali per il recovery da failure non catastrofici: Tecniche ad aggiornamento differito (algoritmo NO-UNDO/REDO) Tecniche ad aggiornamento immediato (algoritmo UNDO/REDO) Tecniche ad aggiornamento differito. Con questa tecnica, i dati non sono fisicamente aggiornati fino all esecuzione della commit di una transazione. Le modifiche effettuate da una transazione sono memorizzate in un suo spazio di lavoro locale (workspace). Durante il commit, gli aggiornamenti sono salvati persistentemente prima nel log e poi nel database. Se la transazione fallisce, non è necessario l undo; può però essere necessario il redo di alcune operazioni. Tecniche ad aggiornamento immediato. Il database può essere aggiornato fisicamente prima che la transazione effettui il commit. Le modifiche sono registrate prima nel log (con un force-writing) e poi sul DB, permettendo comunque il recovery. Se una transazione fallisce dopo aver effettuato dei cambiamenti, ma prima del commit, l effetto delle sue operazioni nel DB deve essere annullato: occorre effettuare il rollback della transazione (UNDO). Le tecniche di recovery possono essere influenzate da particolari gestioni del file system da parte del sistema operativo, in particolare dal buffering e dal caching di blocchi del disco in memoria centrale. Per migliorare l efficienza degli accessi a disco, i blocchi del disco contenenti i dati manipolati spesso dal DBMS, sono conservati (cached) in un buffer della memoria centrale: i dati sono quindi aggiornati in memoria, prima di essere riscritti su disco. Sebbene la gestione del caching sia un compito del sistema operativo, spesso è il DBMS ad occuparsene esplicitamente, a causa dello stretto accoppiamento con le tecniche di recovery. Il DBMS gestisce direttamente una serie di buffer, che formano la cache del DBMS. Per tenere traccia dei data item presenti in cache, si usa una directory, ovvero una tabella con entry del tipo: <indirizzo pagina su disco, locazione nel buffer>. Quando il DBMS richiede l accesso ad un data item, se ne controlla la presenza in cache: Se già è presente, il DBMS ne ottiene l accesso. Se non è presente, www.ilparticolarenascosto.it Basi di dati 2 @ Unisa 8.1

1. deve essere individuato il blocco su disco contenente l item. 2. Il blocco deve essere copiato nella cache. 3. Se la cache è piena, sono necessarie strategie tipiche dei sistemi operativi per il rimpiazzamento delle pagine (LRU, FIFO, ecc...). Ad ogni blocco nella cache si può associare un dirty bit, per evidenziare se qualche elemento del buffer è stato modificato o meno. Al caricamento di un blocco in un buffer, il suo dirty bit è posto a 0. In seguito ad una modifica del contenuto del buffer, il suo dirty bit è posto a 1. Un buffer deve essere salvato su disco solo se il suo dirty bit vale 1. Esistono due strategie principali per lo svuotamento di buffer modificati: 1. In place updating: Il buffer è riscritto nella stessa posizione originaria sul disco. Si mantiene in cache una singola copia di ogni blocco del disco. È necessario usare un log per il recovery. 2. Shadowing: Un buffer può essere riscritto in una locazione differente, permettendo la presenza su disco di più versioni di un data item: Sia il vecchio valore (BFIM), sia quello aggiornato(afim) di un data item possono essere presenti sul disco contemporaneamente. Write-Ahead Logging Usando l In place updating è necessario un log per il recovery. Il log contiene due tipi di informazioni: quelle per l UNDO e quelle per il REDO. Un entry del log di tipo UNDO include il vecchio valore (BFIM) dell item salvato (necessario per effettuare un UNDO). Un entry del log di tipo REDO include il nuovo valore (AFIM) dell item salvato (necessario per effettuare un REDO). Per permettere il recovery con l in-place updating, le entry appropriate devono essere salvate nel log su disco prima di applicare i cambiamenti del database. Protocollo WAL (Write-Ahead Logging): 1. L AFIM non può sovrascrivere la BFIM di un elemento sul disco finché non sono stati memorizzati i record di log di tipo UNDO della transazione. 2. L operazione commit non può essere completata finché non sono scritti su disco tutti i record di log di tipo UNDO e di tipo REDO. Nel Log vengono utilizzate particolari entry, dette checkpoint. Nel Log viene registrato un [checkpoint] periodicamente, quando il DBMS salva su disco tutti i blocchi modificati in cache. In questo modo, tutte le transazioni che hanno effettuato la commit prima del checkpoint non richiedono operazioni di REDO in caso di crash, poiché le loro modifiche sono già state rese permanenti. Operazioni per creare un checkpoint Il recovery manager crea dei checkpoint ad intervalli regolari (es. ogni m minuti o ogni t transazioni terminate). Per creare un checkpoint si effettuano le seguenti operazioni: 1. Sospendere temporaneamente l esecuzione di tutte le transazioni. 2. Scrivere su disco il contenuto di tutti i buffer modificati (scrittura forzata). 3. Scrivere una entry di checkpoint nel log. www.ilparticolarenascosto.it Basi di dati 2 @ Unisa 8.2

4. Riprendere l esecuzione delle transazioni sospese. Se una transazione fallisce per una qualsiasi ragione, può essere necessario effettuarne il rollback. Il rollback di una transazione T richiede il rollback di tutte le transazioni che hanno letto il valore di qualche dato scritto da T, e così via (rollback in cascata). Questo è complesso da gestire e richiede molto tempo: i meccanismi di recovery sono progettati per non usarlo. (ESEMPIO: Vedi esempio slide 19-20). Tecniche di recovery basate su aggiornamento differito Deferred Update Sappiamo che con questa tecnica i dati non sono aggiornati fisicamente fino all esecuzione della commit di una transazione. Definiamo un protocollo di deferred update: 1. Una transazione non può cambiare il database finché non raggiunge il punto di commit. 2. Una transazione non raggiunge il punto di commit finché tutte le sue operazioni di aggiornamento non sono registrate nel log e il log è scritto su disco. L algoritmo è NO-UNDO / REDO: Non è mai necessario l Undo, e il Redo è richiesto solo se il crash si ha dopo il commit, ma prima dell aggiornamento del DB. In questo caso l algoritmo di recovery è abbastanza semplice: l algoritmo RDU-S (Recovery usando la Deferred Update in ambiente Single-user) chiama una procedura REDO per rieseguire delle operazioni di Write-Item. La procedura RDU-S mantiene due liste di transazioni: 1. transazioni committed a partire dall ultimo checkpoint, 2. transazioni attive (contiene al più una transazione, perché il sistema è single-user). Algoritmo RDU_S Algoritmo RDU_S: Applicare l operazione REDO a tutte le operazioni write_item delle transazioni committed nel log, nell ordine in cui sono scritte nel log. Rilanciare le transazioni attive. REDO (WRITE-OP): Per effettuare il Redo dell operazione WRITE-OP esaminare la sua entry nel log [write_item, T, X, new value] e porre il valore dell elemento X a new-value (l AFIM). Esempio. Illustrazione 1: Le operazioni di read/write per due transazioni. Illustrazione 2: Il System log. www.ilparticolarenascosto.it Basi di dati 2 @ Unisa 8.3

L algoritmo rieffettuerà l operazione [write_item, T 1, D, 20], poiché T 1 era committed. Nota: La REDO è idempotente, perché se il sistema fallisce durante il recovery, deve essere possibile rifare il recovery, ed il risultato, con o senza crash, deve essere lo stesso. In ambienti multiutente, i processi di recovery e di controllo della concorrenza sono interrelati: maggiore è il grado concorrenza, più tempo viene impiegato per effettuare il recovery. Consideriamo un sistema multiutente così gestito: controllo della concorrenza 2PL stretto (twophase locking), lock mantenuto fino al punto di commit. Algoritmo RDU_M Usa due liste di transazioni: 1. Transazioni committed T a partire dall ultimo checkpoint. 2. Transazioni attive T. Algoritmo RDU_M: Fare il REDO di tutte le operazioni di Write delle transazioni committed nel log, nell ordine in cui sono state scritte nel log. Le transazioni attive e non ancora committed devono essere rilanciate. Esempio. Non c è bisogno di fare il REDO delle write per T 1, poiché è stata committed (nel DB) prima del crash. Si deve effettuare il REDO delle write di T 2 e T 3. T 4 e T 5 devono essere rilanciate. L'algoritmo si può migliorare; se un elemento X è stato aggiornato più volte da transazioni committed a partire dall ultimo checkpoint, è sufficiente effettuare il REDO solo dell ultimo aggiornamento. Gli svantaggi del deferred update sono la limitazione dell esecuzione concorrente delle transazioni dovuto al 2PL stretto, e l'eccessivo spazio richiesto per memorizzare gli elementi aggiornati prima del commit di una transazione. I vantaggi, invece, sono che se una transazione è abortita, viene risottomessa senza che sia stato alterato il DB su disco. Inoltre non è necessario il roll-back: una transazione non leggerà mai un dato che sia stato modificato da una transazione non committed (2PL stretto). È escluso il cascading roll-back. www.ilparticolarenascosto.it Basi di dati 2 @ Unisa 8.4

Tecniche di Recovery basate su Immediate Update Quando una transazione effettua un comando di aggiornamento: 1. L operazione viene registrata nel Log (write-ahead logging protocol). 2. 2. L operazione viene applicata nel DB. Necessità di roll-back, nel caso di fallimento della transazione. Le tecniche di recovery si dividono in due categorie: Se tutti gli aggiornamenti di una transazione sono riportati nel DB prima del commit, non è mai richiesto il REDO (algoritmo di recovery di tipo UNDO/NO-REDO). Se la transazione raggiunge il commit prima che tutti gli aggiornamenti siano riportati nel DB può essere necessario il REDO(algoritmo di recovery di tipo UNDO/REDO). Recovery nei sistemi Multidatabase Transazione Multidatabase: una transazione che richiede l accesso a database multipli. Questi DB possono essere gestiti da DBMS differenti (relazionali, OO, gerarchici, ). Meccanismo di recovery a due livelli: 1. Local recovery manager. 2. Global recovery manager (coordinatore). Per effettuare transazioni di questo tipo si usa un protocollo di commit a due fasi: Fase 1 Fase 2 1. Tutti i database coinvolti dalla transazione segnalano al coordinatore di aver completato la loro parte. 2. Il coordinatore manda ad ogni partecipante il messaggio prepare for commit. 3. Ogni partecipante forza su disco tutte le informazioni per il recovery locale e risponde OK al coordinatore. Se per qualche ragione non può fare il commit risponde not OK. Se il coordinatore riceve OK da tutti i partecipanti, questo manda un comando di commit ai DB coinvolti. Ogni partecipante segnala il [commit] nel Log, ove necessario, ed aggiorna il DB. Se qualche partecipante ha fornito un not OK la transazione fallisce e il coordinatore invia un messaggio UNDO ai partecipanti. Backup e Recovery di Database da failure catastrofici La principale tecnica è quella del back-up di database. Periodicamente il DB e il log sono ricopiati su un device di memoria economico. Il system log è back-upped più di frequente del DB intero. In caso di failure catastrofico, tutto il DB viene ricaricato su dischi e seguendo il log gli effetti delle transazioni committed vengono ripristinati. Per non perdere tutte le transazioni effettuate dall ultimo back-up, i file di log sono ricopiati molto frequentemente. È possibile fare ciò grazie alle ridotte dimensioni di tali file rispetto alla taglia dell intero database. www.ilparticolarenascosto.it Basi di dati 2 @ Unisa 8.5