System R
Recovery System
Vitor Silva
Tópicos


O System R
System R Recovery System






Shadows
Log
Protocolo Do, Undo, Redo
CheckPoints
Reinício do Sistema
Exemplo
O System R

“System R, an experimental database system, was
constructed to demonstrate that the usability
advantages of the relational data model can be
realized in a system with the complete function and
high performance required for everyday production
use.“ [A History and Evaluation of System R, 1981]
Arquitectura
Recovery System
Falha no Armazenamento (Discos)
1.

Imagens do estado da Base de Dados + Logs
das mudanças “antes” e “depois”
Falha no Sistema (Memória)
2.

Logs das mudanças + Shadow Pages
Falha na Transacção
3.

Logs das mudanças
Recuperação de Transacções não implica o reinício
do sistema
Shadow Files




Os ficheiros no sistema R contém um overhead de
recuperação e podem ser caracterizados como
shadowed ou nonshadowed
É da responsabilidade do utilizador a salvaguarda
dos Nonshadowed files
No caso dos shadowed files o RSS mantém duas
versões dos ficheiros: a versão actual e a versão
shadow.
Apenas a versão actual do ficheiro é actualizada por
operações RSS (excepto para salvar o ficheiro ou
restaurar o sistema)
Shadow Versions




Quando uma página shadow é actualizada pela
primeira vez no buffer pool é criada uma nova
página (versão actual)
De seguida, em cada actualização que envolva esta
página apenas a versão actual é alterada (a versão
shadow nunca é alterada)
Quando fôr altura de salvar o ficheiro a que
pertence a página, é salva a versão actual e
actualiza-se a tabela de páginas, libertando o
espaço ocupado pelas versões shadow
Restaurar um ficheiro significa descartar todas as
versões actuais das páginas e restaurar a tabela de
páginas anterior (da versão shadow)
Log’s


O log de transacções é implementado num
sistema de pilha push-down: escrever um
novo registo coloca-o na pilha, desfazer um
registo remove-o da pilha
Os registos de log de uma dada transacção
estão ligados por listas ligadas cujo factor
comum é o identificador de transacção
Registo de log









Nome do ficheiro
Identificador do atributo
Valor antigo do atributo
Novo valor do atributo
Alterações da
Transacção
Identificador de transacção
Informação de
Identificador de acção
controlo do
Carimbo Temporal
sistema de log
Dimensão do registo de log
Ponteiro para o registo de log anterior
desta transacção
Protocolo Do, Undo, Redo

As operações do RSS executadas sobre os
log’s são:




DO – executa a acção e escreve um registo no
log com a informação necessária
UNDO – com base num registo de log desfaz a
acção escrita pelo DO
REDO – com base num registo de log executa
novamente a acção escrita pelo DO
DISPLAY – opcional, traduz um registo de log para um formato
legível por uma pessoa
Acções do gestor de
recuperação do RSS






BEGIN – indica o início de uma transacção;
SAVE – designa um save point na transacção. Se uma
transacção incompleta for salvaguardada, o undo pode
parar nesse ponto em vez de desfazer toda a
transacção;
READ__SAVE – devolve os dados guardados no log
pela aplicação num dado save point;
UNDO – desfaz os efeitos de uma transacção até um
save point anterior;
ABORT – desfaz todos os efeitos de uma transacção;
COMMIT – assinala o término de uma transacção com
sucesso e faz com que as mudanças sejam guardadas
em disco;
Commit
Sistema R garante que as transacções que
fizeram commit podem ser refeitas e que as
transacções que falharam podem ser
desfeitas porque:

O log
das transacções
é escrito em
disco
antes
Uma
transacção
está concluída
com
sucesso
da “shadow database” ser substituída pela
quando
o registo de commit aparece no log em
“current database”;
disco
2. A acção commit escreve um registo de log de
1.
commit e depois força a escrita do log de
transacções em disco;
“Write ahead log protocol” [GRAY78]
UNDO


Undo – lê um registo de log, vê qual o
identificador de acção e invoca a operação
undo correspondente à acção tendo como
parâmetro os dados do registo de log
As alterações de uma transacção falhada
podem ser desfeitas lendo o log dessa
transacção desde o último registo até ao
primeiro e efectuando sucessivos undo, ou
até um save point prévio
Checkpoints (1/3)

Objectivo: limitar o trabalho (undo e redo)
necessário ao reiniciar o sistema

No Sistema R os checkpoints são imagens
do sistema num tempo em que não estão a
ser efectuadas acções RSS
Checkpoints (2/3)
Passos num checkpoint:

1.
2.
3.
4.

Lista de todas as transacções a decorrer, bem como
apontadores para o registo de log mais recente de cada uma
delas
Escrever no log do sistema o registo de checkpoint (contém
a lista de transacções a decorrer)
Todos os ficheiros são salvos em memória secundária (flush
buffer pool e directórios de shadow)
Endereço do registo de checkpoint é escrito na versão shadow
do estado, mais concretamente no directório
No reinício do sistema o ponteiro para o registo de
checkpoint poderá ser acedido directamente do
directório
Checkpoints (3/3)
Reinício do Sistema


Inicialmente o sistema de gestão de ficheiros
restaura os ficheiros às suas versões shadow
De seguida entra em acção o gestor de
recuperação que examina o registo de
checkpoint mais recente e detectar uma de
duas situações possíveis:


Se não existem transacções pendentes o sistema
já se encontra num estado consistente;
Se existirem transacções pendentes é necessário
restaurar o sistema a um estado consistente;
Exemplo
Identificação de transacções “winner” e “loser”;
Undo das “loser”, seguido de redo das “winner”;
Após o final do processo de reinício é efectuado um novo checkpoint;
Apenas após o final do processo de reinício é que o log e a versão
shadow da base de dados poderá começar a ser actualizada.
Bibliografia




“The Recovery Manager of the System R
Database Manager”- Jim Gray, Paul McJones,
Mike Blasgen, Bruce Lindsay, Raymond Lorie, Tom
Price, Franco Putzolu, Irving Traiger, 1981
“System R and the Relational Model” Anastassia Ailamaki , 2001
“A History and Evaluation of System R” - Donald
D. Chamberlin, Morton M. Astrahan, Michael W.
Blasgen, James N. Gray, W. Frank King, Bruce G.
Lindsay, Raymond Lorie, James W. Mehl, Thomas
G. Price, Franco Putzolu, Patricia Griffiths Selinger,
Mario Schkolnick, Donald R. Slutz, Irving L. Traiger,
Bradford W. Wade, Robert A. Yost, 1981
“Recovery Techniques For Database Systems” Joost S. M. Verhofstad, 1978
Download

System R Recovery System