As informações de redo dos logs de compensação correspondem às informações de undo da entrada de log que tornou necessária sua criação durante a fase de undo.
Isso me parece que as informações de refazer dos CLRs são as mesmas que as informações de desfazer dos logs que os desencadearam.
Mas não deveria ser que eles tenham a informação REDO para cancelar as operações UNDO executadas no caso de um processo de recuperação interrompido?
Aqui está um exemplo:
seja T2 uma transação perdedora:
<#55, T2, P3, J=J+9, J = J-9, #53>
J=J+9 é o redo-op e J = J-9 é o undo-op.
Agora, o CLR anexado ao arquivo de log durante a fase de redo seria:
<#56, T2, J=J-9,__, #53>
Com J=J-9 sendo a operação de desfazer da entrada de log original como as informações de redo no CLR. Caso a recuperação seja interrompida, o log-entry #56 será executado durante a fase de redo.
O objetivo do CLR é garantir que reiniciar o processo de recuperação e executá-lo novamente sempre leve ao mesmo resultado. Como a execução da operação J=J-9 durante a fase de refazer da reexecução garante isso?
Alguém por favor pode me explicar isso?