1.2 - Técnicas de recuperação baseadas em atualização imediata
Nessas técnicas, quando uma transação emite um comando de atualização, o banco de dados no disco pode ser atualizado imediatamente, sem qualquer necessidade de esperar que a transação atinja seu ponto de confirmação.
Observe que não é obrigatório que cada atualização seja aplicada imediatamente ao disco; é apenas possível que algumas atualizações sejam aplicadas ao disco antes que a transação seja confirmada.
Devem-se tomar providências para desfazer o efeito das operações de atualização que foram aplicadas ao banco de dados por uma transação com falha. Isso é obtido ao reverter a transação e desfazer o efeito das operações write_item da transação. Portanto, as entradas do log tipo UNDO, que incluem o valor antigo (BFIM) do item, devem ser armazenadas no log. Como o UNDO pode ser necessário durante a recuperação, esses métodos seguem uma estratégia steal para decidir quando os buffers da memória principal atualizados podem ser gravados de volta no disco.
Teoricamente, podemos distinguir duas categorias principais de algoritmos de atualização imediata:
- Se a técnica de recuperação garante que todas as atualizações de uma transação são gravadas no banco de dados em disco antes que a transação seja confirmada, não há motivo para refazer (REDO) quaisquer operações das transações confirmadas. Isso é chamado de algoritmo de recuperação UNDO/NO-REDO. Nesse método, todas as atualizações por uma transação devem ser gravadas em disco antes que a transação seja confirmada, de modo que o REDO nunca é necessário. Assim, esse método precisa utilizar a estratégia force para decidir quando os buffers atualizados da memória principal são gravados de volta no disco.
- Se a transação puder confirmar antes que todas as mudanças sejam gravadas no banco de dados, temos o caso mais geral, conhecido como algoritmo de recuperação UNDO/REDO. Nesse caso, a estratégia steal/no-force é aplicada. Essa também é a técnica mais complexa.
Copyright © 2016 AIEC.