Escolar Documentos
Profissional Documentos
Cultura Documentos
Mecanismos de Recuperação
Rodrigo Tripodi Calumby
tripodi@ic.unicamp.br
Objetivo:
T1 T2 T3
read_item (A) read_item (B) read_item (C)
read_item (D) write_item (B) write_item (B)
write_item (D) read_item (D) read_item (A)
write_item (A) write_item (A)
Exemplo
A B C D
30 15 40 20
[start_transaction, T3]
[read_item, T3, C]
* [write_item, T3, B, 15, 12] 12
[start_transaction,T2]
[read_item, T2, B]
**[write_item, T2, B, 12, 18] 18
[start_transaction,T1]
[read_item, T1, A]
[read_item, T1, D]
[write_item, T1, D, 20, 25] 25
[read_item, T2, D]
**[write_item, T2, D, 25, 26] 26
[read_item, T3, A]
---- system crash ----
(b)
[start_transaction, T1]
[write_item, T1, D, 20]
[commit T1]
[start_transaction, T2]
[write_item, T2, B, 10]
[write_item, T2, D, 25] ← falha
T1
T2
T3
T4
T5
t1 Time t2
checkpoint system crash
(b)
[start_transaction, T1]
[write_item, T1, D, 20]
[commit, T1]
[checkpoint]
[start_transaction, T4]
[write_item, T4, B, 15]
[write_item, T4, A, 20]
[commit, T4]
[start_transaction T2]
[write_item, T2, B, 12]
[start_transaction, T3]
[write_item, T3, A, 30]
[write_item, T2, D, 25] ← system crash
T2 e T3 são ignoradas porque elas não alcançaram os seus pontos de commit
T4 é refeita porque seu commit acontece depois do último checkpoint
Esquemas de Recuperação
Sistema multiusuário com atualização atrasada
Duas tabelas são necessárias para a implementação
deste protocolo:
Active table: todas as transações ativas são mantidas
nesta tabela
Commit table: todas as transações comitadas são
mantidas nesta tabela
X Y
X' Y'
Database
Baseado em:
WAL (Write Ahead Logging)
Repetir histórico durante redo: ARIES
rastreia todas as atualizações feitas no
bd antes da falha
Registrar alterações no log durante o
undo: previne ARIES a não repetir
operações completas de undo se uma
falha ocorre durante a recuperação
Algoritmo de Recuperação ARIES
O algoritmo de recuperação ARIES
consiste em três etapas:
Análise: identifica páginas “sujas”
(atualizadas) no buffer e o conjunto de
transações ativas no momento da falha. O
ponto do log onde a operação de redo vai
iniciar é determinado
Redo: operações redo necessárias são
executadas
Undo: log é percorrido de trás para frente e
operações de transações ativas no momento
da falha são desfeitas na ordem reversa
Algoritmo de Recuperação ARIES
Log e o número de sequência no log (LSN)
– Um registro de log é escrito para (a) atualização de
dado, (b) efetivação de transações, (c) “aborto” de
transações, (d) undo, e (e) fim de transação