Como uma consequência da etapa 2, um registro de checkpoint no log também pode incluir informações adicionais, como uma lista de ids de transação ativas e os locais (endereços) do primeiro e mais recente (último) registros no log para cada transação ativa. Isso pode facilitar o desfazer de operações de transação caso uma transação tenha de ser desfeita.

O tempo necessário para forçar a gravação de todos os buffers de memória modificados pode atrasar o processamento da transação por causa da etapa 1. Para reduzir esse atraso, é comum usar uma técnica chamada checkpoint fuzzy.

Com a técnica checkpoint fuzzy, o sistema pode retomar o processamento da transação após um registro (begin_checkpoint) ser gravado no log sem esperar que a etapa 2 termine.

Quando a etapa 2 é concluída, um registro (end_checkpoint, ...) é gravado no log com a informação relevante coletada durante o checkpoint. Porém, até que a etapa 2 termine, o registro do checkpoint anterior deve permanecer válido. Para isso, o sistema mantém um arquivo no disco que contém um ponteiro para o checkpoint válido, que continua a apontar para o registro do checkpoint anterior no log. Quando a etapa 2 termina, o ponteiro é mudado de modo a apontar para o novo checkpoint no log.

Copyright © 2016 AIEC.