2 - Caching (buffering) de blocos de disco

O processo de recuperação em geral está bastante interligado às funções do sistema operacional; em particular, o buffering de páginas de disco do banco de dados no cache de memória principal do SGBD. Normalmente, várias páginas de disco que incluem os itens de dados a serem atualizados são mantidas em cache nos buffers da memória principal e, depois, atualizados na memória antes de serem gravados de volta no disco.

O caching de páginas de disco é tradicionalmente uma função do sistema operacional, mas devido a sua importância para a eficiência dos procedimentos de recuperação, ele é tratado pelo SGBD chamando rotinas de baixo nível do sistema operacional. Com isso o SGBD é capaz de dizer o momento exato e os dados (blocos) ao gerenciamento de discos que devem ser lidos ou gravados.

Em geral, é conveniente considerar a recuperação em relação às páginas de disco (blocos) do banco de dados. Normalmente, uma coleção de buffers na memória, chamada cache do SGBD, é mantida sob o controle do SGBD com a finalidade de manter esses buffers. Uma tabela dentro do cache é usada para acompanhar quais itens de banco de dados estão nos buffers. Isso pode ser uma tabela de entradas <Endereço_página_disco, localização_buffer, ...>.

Quando o SGBD solicita ação em algum item, primeiro ele verifica a tabela no cache para determinar se a página de disco que contém o item está no cache do SGBD. Se não estiver, o item precisa ser localizado no disco, e as páginas de disco apropriadas são copiadas para o cache. Pode ser necessário substituir (ou esvaziar) alguns dos buffers de cache para criar espaço disponível para o novo item.

Clique aqui para saber mais sobre mecanismos de substituição de página.

Copyright © 2016 AIEC.