Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoAgnese Fabiana Federici Modificato 8 anni fa
1
Anno 2013-2014 Architetture dati - DBMS Centralizzati Recovery management Carlo Batini
2
Riferimenti Trasparenze parte Recovery manager Basi di Dati Atzeni et al. - Capitolo 2.1, 2.2 Anche: –Garcia Molina, Ullman, Widom, Database Systems – the complete book, Prentice Hall, 2002
3
Bufferm Management – Recovery Management – C. Batini e P. Missier– 3 Recovery manager Gestore della affidabilità
4
Data Base Recovery Il recovery manager e’ responsabile di –Garantire Atomicita’ –Garantire Persistenza –Realizzare i comandi transazionali fondamentali: Begin transaction, end transaction, commit work, rollback work Obiettivo del recovery manager e’ quindi di: –Gestire il rollback di una transazione –Ricostruire uno stato consistente del DB e che rispetti la semantica della transazioni, in seguito a un guasto del DBMS
5
Organizzazione del materiale 1. Tipi di guasti e politica generale di ripristino 2. Informazioni che il recovery manager deve avere a disposizione per operare –Log –Dump –Checkpoint 3. Operazioni che utilizzano queste informazioni e che sono a disposizione del recovery manager –Undo e Redo 4. Politiche per l’aggiornamento delle informazioni di sistema (log) e della BaseDati da parte del recovery manager
6
Bufferm Management – Recovery Management – C. Batini e P. Missier– 6 1. Tipi di guasti e politica generale di ripristino
7
Concetto di Memoria stabile Memoria resistente ai guasti E un’astrazione, benche’ tecniche di replicazione su dispositivi fisici multipli possano portare la probabilita’ di perdita di dati vicina allo zero L’organizzazione fisica puo’ differire a seconda della criticita’ delle applicazioni: –Unita’ nastro –Devices di tipo diverso accoppiati (es un nastro e un disco) –Due unita’ disco replicate – protocolli RAID, Redundant Array of Inexpensive Disks
8
Tipi di guasti e cause di rollback - 1 Guasti di sistema –System crash, errore hw/sw o di rete (es. Calo tensione): –Errore di sistema o applicativo (della transazione) Esempio: divisione per zero –Condizioni logiche locali durante l’esecuzione di una transazione (es. assenza di un dato) –Gestione della concorrenza (vedremo piu’ avanti) Lo scheduler puo’ forzare il rollback e restart di una transazione –Perdita del contenuto del buffer, memoria di massa rimane valida
9
Tipi di guasti e cause di rollback - 2 Guasti di dispositivo di memorizzazione –Guasto di disco –Problemi “catastrofici” Incendio Alluvione Attentato Perdita fisica di dati su memoria di massa ma non del log (che e’ su memoria stabile)
10
Le strategie da adottare dipendono dal tipo di guasto Guasti di sistema: –Perdita del buffer, stato persistente intatto –Problema principale Atomicita’ –Strategia di recovery: Tenere memoria sulle operazioni effettuate (log) Fare periodicamente la “fotografia” della situazione (checkpoint) Ripercorrere all’indietro la storia dei cambiamenti di stato del DB E’ necessario disfare (undo) alcune operazioni, ripeterne altre (redo) (vedi oltre per dettagli)
11
Le strategie da adottare dipendono dal tipo di guasto Guasti di dispositivo: –Perdita dello stato persistente (perdita dei dischi) –Problema principale Persistenza –Strategia di recovery: Memorizzare periodicamente su memoria stabile lo stato della BD ( dump ) Caricare il piu’ recente stato disponibile del DB Ricostruire lo stato attuale utilizzando il log a partire dal dump
12
Bufferm Management – Recovery Management – C. Batini e P. Missier– 12 2. Informazioni disponibili al recovery manager 2.1. Il log di sistema 2.2. Checkpoint 2.3. Dump
13
2.1 Organizzazione del system log Il log e’ un file sequenziale che si assume scritto su memoria stabile, per la quale cioe’ non vi possono essere guasti Registra le attivita’ svolte da ciascuna transazione, in ordine cronologico Nel log compaiono due tipi di record: –Record di transazione Informazioni sulle operazioni effettuate dalle transazioni –Record di sistema Evento di Checkpoint Evento di Dump
14
Record di transazione: ci interessano le operazioni di modifica –La struttura dipende dal tipo di operazione –Legenda O=oggetto, AS = After (dopo) State, BS = Before (prima) State Struttura per le varie operazioni –begin, B(T) –insert, I(T,O, AS) –delete, D(T,O,BS) –update, U(T,O,BS,AS) –commit, C(T), o abort, A(T)
15
Esempio di log B(T1)B(T2) C(T2)B(T3) U(T3,…) U(T1,…) U(T2,…)
16
2.2 Checkpoint Lo scopo del checkpoint e’ quello di ricordare l’insieme delle transazioni attive (al momento del checkpoint) T1, …, Tn distinguendole da quelle completate/committed
17
Esempio di stato delle transazioni al momento del checkpoint dump CK B(T1) B(T2) C(T2)B(T3) U(T3,…) U(T1,…) U(T2,…) U(T1,…) T1 T2 T3 Completata/ committed Attiva/ uncommitted Deve ancora iniziare
18
Checkpoint - 1 La primitiva di checkpoint (CK) esegue due operazioni –Per ogni transazione che ha eseguito un commit (committed nel seguito) prima del checkpoint, copia le pagine di buffer su disco (quindi di queste transazioni non dovremo piu’ occuparcene) –Per ogni transazione che ha eseguito un abort prima del checkpoint effettua la procedura di UNDO (vedi seguito) –Successivamente scrive nel log un record CK(T1,…Tn) contenente gli IDentificatori delle transazioni T1,…Tn attive (cioe’ che non hanno eseguito un commit, uncommitted nel seguito) all’atto della esecuzione del checkpoint
19
Esempio di stato delle transazioni al momento del checkpoint dump CK(T1) B(T1) B(T2) C(T2)B(T3) U(T3,…) U(T1,…) U(T2,…) U(T1,…) T1 T2 T3 Completata/ Committed Copia su disco Attiva/ Uncommitted Scrive su log l’identificatore Deve ancora Iniziare niente
20
Checkpoint - 2 Conseguenza: –Per tutte le transazioni T per cui Commit(T) precede CK(T1,…Tn), non e’ necessario fare niente (rieseguire) in caso di guasto Il checkpoint viene eseguito periodicamente, e registrato nel log
21
Quali tra queste? dump CK(T1) B(T1) B(T2) C(T2)B(T3) U(T3,…) U(T1,…) U(T2,…) U(T1,…) T1 T2 T3 Completata/ Committed Copia su disco Attiva/ Uncommitted Scrive su log l’identificatore Deve ancora Iniziare niente
22
Percio’ la sequenza di checkpoint e’.. –1. Sospende l’esecuzione delle transazioni –2. Scrive su disco le pagine del buffer delle transazioni che hanno fatto il commit –3. Esegue procedura di UNDO per le transazioni terminate con abort –4. Successivamente, scrive il record CK(T1,…Tn) sul log in modo sincrono (force) –4. Riprende l’esecuzione delle transazioni Deve essere sicuro che sia completato il trasferimento Per garantire la persistenza
23
Esempio di log con checkpoint CK B(T1)B(T2) C(T2)B(T3) U(T3,…) U(T1,…) U(T2,…) U(T1,…)
24
2.3 Dump Un dump e’ una copia dell’intero stato del DB su memoria stabile Eseguita offline (nessuna transazione attiva, serve una “fotografia”) Produce un backup, cioe’ salvataggio su memoria stabile Scrive (force) un record di dump nel log, che segnala che in quell’istante e’ stata fatta una copia della BD
25
Esempio di log con checkpoint e dump CK B(T1)B(T2) C(T2)B(T3) U(T3,…) U(T1,…) U(T2,…) U(T1,…) dump
26
Record di end Alcuni sistemi registrano nel log per ogni transazione anche il record di end, che attesta che le operazioni di flush relative alla transazione sono terminate. CK B(T1)B(T2)C(T2) B(T3) U(T3,…) U(T1,…) U(T2,…) U(T1,…) dump Crash END(T2)
27
Record di end In presenza del record di end, e’ possibile individuare una ulteriore classe di transazioni per le quali non e’ necessario effettuare nessuna azione, ne’ di undo ne’ di redo. CK B(T1)B(T2)C(T2) B(T3) U(T3,…) U(T1,…) U(T2,…) U(T1,…) dump Crash END(T2)
28
Record di end CK B(T1)B(T2)C(T2) B(T3) U(T3,…) U(T1,…) U(T2,…) U(T1,…) dump Crash END(T2) In genere il record di end non e’ previsto, e noi faremo nel seguito questa assunzione.
29
Bufferm Management – Recovery Management – C. Batini e P. Missier– 29 Operazioni che utilizzano il log Undo e Redo
30
Esempio di stato delle transazioni al momento del crash dump CK B(T1) B(T2)C(T2)B(T3) U(T3,…) U(T1,…) U(T2,…) U(T1,…) T1 T2 T3 Crash
31
Atomicita’ e persistenza delle transazioni Per le transazioni che al momento di un guasto sono: –Committed (la transazione si e’ impegnata a eseguire tutte le proprie azioni) e’ necessario rifare le azioni, per garantire la persistenza Redo –Uncommitted e’ necessario disfare le azioni, perchè non e’ noto quali azioni siano state effettuate, ma deve essere garantita la atomicita’ Undo
32
Undo –Ripristina lo stato di un dato O al tempo precedente l’esecuzione di una operazione –Ripercorre il log all’indietro, assegnando il valore BS “before state” ad ogni dato incontrato nel log –update, delete : assegna il valore BS ad O –insert : cancella O
33
Redo –Ripristina lo stato di un dato O al tempo successivo l’esecuzione di una operazione –Ripercorre il log in avanti, assegnando il valore AS (“after state”) ad ogni dato incontrato nel log –insert, update :assegna il valore AS ad O –delete : cancella O
34
A queste aggiungiamo RESUBMIT – La transazione viene risottomessa al Gestore delle transazioni per essere nuovamente eseguita
35
Bufferm Management – Recovery Management – C. Batini e P. Missier– 35 Politiche per l’aggiornamento del log e della BD da parte del recovery manager
36
Tre tipi di eventi vanno sequenziati con opportune politiche 1.Scrittura dei record di transazione del log su memoria stabile 2.Scrittura dei record dati su disco 3.Esecuzione della istruzione di commit e memorizzazione nel log
37
Per semplificare la trattazione ci occupiamo del solo caso record dati su disco vs esecuzione del commit Record dati su disco Esecuzione Commit
38
Caso record dati su disco vs esecuzione del commit Per ciascuna delle tre tipologie di operazioni su DB –Update –Insert –Delete il recovery manager deve seguire delle politiche di esecuzione per la scrittura su disco Lo faremo per la update
39
Caso dei record dati su disco e esecuzione del commit e mem. nel log - strategie - 1 Due strategie di scrittura dei valori nella BD 1. Aggiornamento immediato - Le updates vengono scritte su disco immediatamente 2. Aggiornamento differito - Le updates vengono scritte su disco solo dopo il commit della transazione – piu’ efficiente
40
Esempi delle due politiche Immediata Differita Mista
41
Modalita’ immediata Il DB contiene valori AS provenienti da transazioni uncommitted Richiede Undo delle operazioni di transazioni uncommitted al momento del guasto Non richiede Redo dumpCKCrash T3 T1 T5 T2 T6 Nulla Undo T4 Undo A Contenuto del log
42
Modalita’ differita Il DB non contiene valori AS provenienti da transazioni uncommitted In caso di abort, non occorre fare nulla Rende superflua la procedura di Undo Richiede Redo dumpCKCrash T3 T1 T5 T2 T6 Nulla Redo Nulla T4 Nulla A
43
Bufferm Management – Recovery Management – C. Batini e P. Missier– 43 Strategie per il recovery
44
Scopo delle strategie Garantire atomicita’ e persistenza (durability) Atomicita’ – le transazioni in corso all’atto del guasto lasciano il DB nello stato iniziale o nello stato finale Persistenza – Le pagine completate nel buffer ma non ancora trasferite su disco devono essere trasferite permanentemente su disco
45
Due modalita’ Caso di guasto di sistema Perdita del contenuto del buffer: Warm restart o Ripresa a caldo Guasto di dispositivo Perdita della memoria di massa: Cold restart o Ripresa a freddo
46
Ambito del warm restart o del cold restart CK B(T1)B(T2) C(T2)B(T3) U(T3,…) U(T1,…) U(T2,…) U(T1,…) dump Crash Warm restart Cold restart
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.