Como funciona o arquivo primário de recuperação (BI) – parte 5

Escrito por Nilson Nestor Wolfgramm em 4 de março de 2009, 11:07h

Trataremos neste post da alocação de espaço no arquivo de BI.

O espaço no arquivo de BI é alocado em unidades de tamanho fixo chamadas “clusters”. O tamanho do cluster pode ser alterado no mesmo momento em que o BI é truncado(proutil).

Quando o BI é inicializado, é alocado espaço para 4 clusters que são interligados de maneira a formar um anel. Uma vez que os 4 clusters sejam preenchidos, todo espaço inicialmente alocado estará preenchido. Na sequência, ou o primeiro cluster é reutilizado, ou um novo cluster é adicionado. É utilizado o espaço livre no arquivo de BI, ou ele é expandido fisicamente. Quando um novo cluster é adicionado ele passa a fazer parte do anel que interliga os clusters, recebe um “time stamp”(selo de data) e um número sequencial  de identificação.

A cada vez que um cluster é preenchido, ou é reutilizado o mais antigo, ou um novo é adicionado. Um cluster pode ser reutilizado quando as anotações que ele contém não são mais necessárias. Elas não são mais necessárias quando:

- todas as transações que geraram anotações no cluster foram encerradas. Então elas não precisarão ser desfeitas(undo).

- todos os blocos de banco alterados por uma transação que gravou suas informações no cluster tiverem sido gravadas no arquivo do banco em disco.

Então não será necessário executar todas as etapas do processo de “crash recovery”. Uma transação de execução muito longa pode impedir a reutilização de clusters, desde aquele onde a transação começou a gravar anotações, até o cluster em uso no momento. Caso a transação tenha que ser desfeita será necessário que as alterações registradas pela transação sejam revertidas.

Quando um cluster puder ser reutilizado, seu cabeçalho receberá um número sequencial e o tempo corrente.  Como clusters que já foram usados já estão linkados na estrutura de anel de clusters alocados, eles não precisam ser reinseridos na estrutura, nem reformatados.

. Quando um cluster é alocado para reutilização dentro das extensões fixas do arquivo de BI, zeros são escritos em todo o cluster(formatação). Isto se faz necessário para substituir anotações de transações antigas que não devem mais ser processadas num “crash recovery”.

. Quando o cluster é adicionado, aumentando o tamanho da extensão variável do BI, zeros são escritos em todo o novo cluster já que  o espaço do “file system” somente é alocado quando se escreve no arquivo.

Um novo cluster pode ser alocado utilizando um espaço vazio disponível no arquivo de BI, ou expandindo fisicamente o arquivo de BI . Depois que o novo cluster foi formatado, ele é linkado na estrutura de cluster alocados, recebe um “selo de data(time stamp)”, e recebe o número de identificação do próximo cluster.

A partir da versão 7.2E apenas um cluster é formatado de cada vez no momento da expansão do arquivo de BI.

No próximo post será abordado o funcionamento do processo para truncar o arquivo de BI.

Categorias: Banco de dados | Progress

Tags: ,

Comentar




biuquote
  • Comentário
  • Pré-visualização
Loading


Acesso LogMeIn

Informe o código PIN: