4 - Checkpoint no log do sistema e checkpoint fuzzy

Outro tipo de entrada no log é chamado de checkpoint. Um registro do tipo <checkpoint, lista de transações ativas> é gravado no log periodicamente no ponto em que o sistema grava, no banco de dados em disco, todos os buffers do SGBD que foram modificados.

Como consequência disso, todas as transações que têm suas entradas <commit, T> no log antes de uma entrada <checkpoint> não precisam ter suas operações WRITE refeitas no caso de uma falha do sistema, pois todas as suas atualizações serão registradas no banco de dados em disco durante o checkpoint.

Como parte do checkpoint, a lista de ids de transação para transações ativas no momento do checkpoint é incluída no registro do checkpoint, de modo que essas transações possam ser facilmente identificadas durante a recuperação.

O gerenciador de recuperação de um SGBD precisa decidir em que intervalos realizar um checkpoint. O intervalo pode ser medido em tempo, digamos, a cada m minutos, ou no número t de transações confirmadas desde o último checkpoint, em que os valores de m ou t são parâmetros do sistema.

Realizar um checkpoint consiste nas seguintes ações:

Suspender a execução de transações temporariamente Forçar a gravação em disco de todos os buffers da memória principal que foram modificados. Gravar um registro (checkpoint no log) e forçar a gravação do log em disco. Retomar a execução das transações.
Copyright © 2016 AIEC.