O procedimento UNDO/REDO com checkpoint funciona da seguinte forma:

Use duas listas de transações mantidas pelo sistema: as transações confirmadas desde o último checkpoint e as transações ativas. Desfaça todas as operações write_item das transações ativas (não confirmadas), usando o procedimento UNDO. As operações devem ser desfeitas na ordem reversa em que são gravadas no log. Refaça todas as operações write_item das transações confirmadas com base no log, na ordem em que foram gravadas nele, usando o procedimento REDO definido anteriormente.

O procedimento UNDO é definido da seguinte forma:

Desfazer uma operação write_item, definindo o valor do item X no banco de dados para valor_antigo, que é a imagem antiga (BFIM). Desfazer uma Série de operações write_item de uma ou mais transações do log deve prosseguir na ordem reversa daquela em que as operações foram gravadas no log.

Sempre que um item é refeito, ele é acrescentado à lista de itens refeitos e não é refeito novamente. Sempre que um item é desfeito, ele é acrescentado a uma lista de itens desfeitos e não é desfeito novamente.

Copyright © 2016 AIEC.