ScholarGate
Assistente

Recuperação e Registro (Logging)

Os mecanismos de recuperação e registro garantem a atomicidade e a durabilidade das transações, registrando as alterações em um log para que, após uma falha, o trabalho confirmado possa ser refeito e o trabalho não confirmado desfeito.

Encontrar tema com PaperMindEm breveFind papers & topics
Tools & resources
Baixar slides
Learn & explore
VídeoEm breve

Definition

A recuperação de banco de dados é o processo de restaurar o banco de dados para um estado consistente após uma falha, garantindo que os efeitos das transações confirmadas sejam duráveis e que as transações abortadas ou em andamento não deixem rastros; o registro (logging) é a técnica de registrar as ações da transação em um log durável para tornar isso possível.

Scope

Este tópico aborda como um banco de dados sobrevive a falhas: o protocolo de registro antecipado (WAL), informações de desfazer (undo) e refazer (redo), pontos de verificação (checkpoints) para limitar o trabalho de recuperação e o algoritmo de recuperação padrão (notadamente ARIES) com suas passagens de análise, refazer e desfazer. Ele trata das políticas de gerenciamento de buffer (steal/no-steal, force/no-force) que determinam qual registro é necessário. Exclui os protocolos de controle de concorrência que são executados durante a operação normal e o commit distribuído, que são tópicos adjacentes.

Core questions

  • Por que o registro (log record) deve atingir o armazenamento durável antes dos dados que descreve (registro antecipado - write-ahead logging)?
  • Como o desfazer (undo) e o refazer (redo) restauram um estado consistente após uma falha?
  • Como as políticas de gerenciamento de buffer (steal/force) determinam os requisitos de registro?
  • Que papel os pontos de verificação (checkpoints) desempenham na limitação do tempo de recuperação?
  • Como o algoritmo ARIES estrutura a recuperação em análise, refazer e desfazer?

Key concepts

  • registro antecipado (WAL)
  • registro de desfazer (undo) e refazer (redo)
  • número de sequência de log
  • pontos de verificação (checkpoints)
  • políticas steal/no-steal e force/no-force
  • registros de log de compensação
  • passagens de análise, refazer, desfazer
  • ARIES

Key theories

Registro antecipado (Write-ahead logging)
O protocolo WAL exige que os registros de log que descrevem uma alteração sejam forçados para o armazenamento estável antes da página de dados correspondente, garantindo que, após uma falha, o sistema tenha informações suficientes para desfazer alterações não confirmadas e refazer alterações confirmadas.
Recuperação de desfazer/refazer e políticas de buffer
Se o sistema precisa de desfazer (undo), refazer (redo) ou ambos, depende das políticas de buffer: uma política 'steal' (escrever páginas não confirmadas no disco) requer desfazer, e uma política 'no-force' (não forçar páginas confirmadas no commit) requer refazer; a combinação comum 'steal/no-force' requer ambos.
ARIES
ARIES é o método de recuperação amplamente adotado que usa registro antecipado (write-ahead logging), números de sequência de log e um algoritmo de três passagens (análise, refazer, desfazer) com registros de log de compensação para suportar bloqueio de granularidade fina e rollbacks parciais.

Clinical relevance

A recuperação e o registro são o que tornam a durabilidade real: eles garantem que, uma vez que um sistema confirma uma transação, como um pagamento ou pedido, esse fato sobreviva a perdas de energia e falhas, e que uma falha no meio da transação nunca deixe o banco de dados em um estado inconsistente e parcialmente atualizado.

History

A pesquisa de Härder e Reuter de 1983 estabeleceu os princípios da recuperação orientada a transações e a taxonomia da política de buffer. O ARIES, desenvolvido por C. Mohan e colegas na IBM e publicado em 1992, tornou-se o algoritmo de recuperação de fato padrão, combinando o registro antecipado (write-ahead logging) com números de sequência de log e registros de compensação para suportar bloqueio de granularidade fina.

Key figures

  • C. Mohan
  • Jim Gray
  • Theo Härder
  • Andreas Reuter

Related topics

Seminal works

  • mohan1992
  • haerder1983
  • gray1992

Frequently asked questions

Por que o registro antecipado (write-ahead logging) é necessário?
Porque o banco de dados pode gravar uma página modificada no disco antes que a transação seja confirmada, ou manter uma página confirmada na memória no momento da falha. Forçar o registro de log antes da página de dados garante que, independentemente do que o gerenciador de buffer tenha feito, a recuperação tenha informações suficientes para desfazer alterações não confirmadas e refazer as confirmadas para atingir um estado consistente.
O que os pontos de verificação (checkpoints) realizam?
Um ponto de verificação registra periodicamente quais transações estão ativas e descarrega a contabilidade para o log, dando à recuperação um ponto de partida recente e conhecido como bom. Sem pontos de verificação, a recuperação pode ter que escanear todo o log desde o início; os pontos de verificação limitam o quão longe a recuperação deve processar, mantendo o tempo de reinício gerenciável.

Methods for this concept

Related concepts