Como dissemos, o cache do SGBD mantém os blocos de disco do banco de dados em cache nos buffers da memória principal, que incluem não apenas blocos de dados, mas também blocos de índice e blocos de log do disco.
Quando um registro de log é gravado, ele é armazenado no buffer de log atual no cache do SGBD. O log é simplesmente um arquivo de disco sequencial (apenas para acréscimo) e o cache do SGBD pode conter vários blocos de disco nos buffers da memória principal (em geral, os últimos blocos de log do arquivo de log).
|
Quando é feita uma atualização em um bloco de dados, armazenado no cache do SGBD, um registro de log associado é gravado no último buffer de log no cache do SGBD. Com a técnica de logging write-ahead, os buffers (blocos) de log que contêm os registros de log associados para determinada atualização do bloco de dados precisam primeiro ser gravados em disco, antes que o próprio bloco de dados possa ser gravado de volta no disco com base em seu buffer de memória principal.
|