[firebase-br] Estrutura do FB [era: Garbage Collection e SWEEP ?????]

Otto Fuchshuber ottofuch em terra.com.br
Ter Out 3 17:08:00 -03 2006


Isto pode ser transformado num artigo para o site Firebase
{:-)
Otto
----- Original Message ----- 
From: "Eduardo Jedliczka (TeamFB)" <jedyfb em gmail.com>
To: "FireBase" <lista em firebase.com.br>
Sent: Tuesday, October 03, 2006 10:29 AM
Subject: Re: [firebase-br] Estrutura do FB [era: Garbage Collection e SWEEP
?????]


Marcio,

Acredito que você terá muitas dúvidas iniciais, pois o FireBird utiliza um
paradigma de estrutura e gerenciamento de dados muito diferente dos demais
SGDBs.

Ele trabalha com o conceito de páginas.

Uma página contém informações diversas como: informações de metadata,
tabelas de sistema, tabelas comuns, índices, stored procedures, triggers,
views, etc..

Uma página pode ter 1024 bytes, 2048, 4096, 8192 ou 16384 bytes.

O banco gerencia sozinho quantas páginas ele precisa e de qual tipo precisa.
Quando há falta de espaço, o arquivo Físico cresce, criando assim novas
páginas. Sendo assim 1 página pode guardar informações de vários indices ou
de um único índice, e um índice pode usar várias páginas. A mesma coisa vale
para um registro de uma tabela. Ela pode estar numa única página, ou em
várias páginas. E várias tabelas podem ter informações na mesma página.

Quando um update é executado (ou um delete) as informações são armazenadas
em locais diferentes dos utilizados originalmente, o que pode fazer com que
o banco cresça um pouquinho, pois as informações antigas ainda são
importates, pois o cara pode dar um rollback, ou alguém pode estar fazendo
um relatório analítico de 900 páginas que precisa das versões. Isto é
definido pela transação.

Quando se cria uma transação (em FB todo e qualquer comando SQL, mesmo um
select roda dentro de uma transação) o banco "congela" os dados, para que os
dados continuem íntegros (mesmo que momentaneamente defasados).

 Após concluir uma transação, seja via rollback ou via commit, o banco
verifica quais lugares destas páginas não são mais necessários, e marca
aquilo como LIXO.

Por isto, quanto mais longa as transações, mais o banco vai crescer e ficar
lerdo, pois haverá muitas versões dos mesmos dados.

 O Sweep, processo de reorganização da página e liberação do "lixo", deve
ser realizado com alguma freqüência, para o banco reaproveitar o espaço
interno. No FB SuperServer, ele é automático (mas dá para desligar ou
alterar o valor), e executado geralmente a cada 20 mil transações
finalizadas. No FB classic, a coleta é feita a cada select que corre aqueles
dados. Isto mantém o banco mais limpo, mas dependendo da quantidade de
usuários, e lixo gerado, pode ficar muito mais lento que o SuperServer, mas
há casos em que a recíproca também é verdadeira, pois haverá muitas versões
concorrentes a menos, ou seja, o acesso será mais imediato.

De qualquer forma, dá para usar o GFIX e fazer o Sweep num horário oportuno.

Fazer o Garbage Colection no backup, indica basicamente que seu backup não
irá levar informações desnecessárias (mas ele faz mais coisas), e NÃO É de
forma alguma a mesma coisa que um SWEEP.

Isto já deve te dar uma idéia inicial, qualquer coisa, é só perguntar.

======================
Eduardo Jedliczka
Membro do TeamFB - FireBase
Apucarana - PR
======================
"Posso não concordar com nada do que dizes.
Mas defenderei até a morte o seu direito de dizê-lo"
(Voltaire 1694-1778)

----- Original Message ----- 
From: "Marcio Roberto Chiaveli" <marcio.chiaveli em gmail.com>
To: "FireBase" <lista em firebase.com.br>
Sent: Tuesday, October 03, 2006 9:46 AM
Subject: Re: [firebase-br] [Firebase] Garbage Collection e SWEEP ?????


Quando voce fala que o valor padrão para iniciar o sweep é 20.000, o
que significa este valor?

Em 02/10/06, Sandro<oleber_itajai em yahoo.com.br> escreveu:
> O sweep é um processo de limpeza do banco de dados. Através dele, o
> Firebird
> libera espaços que não serão mais utilizados para que possam ser
> reaproveitados no servidor. Diferente do processo automático de Garbage
> Collection, o sweep processa também os registros que foram descartados
> devido a um rollback de uma transação. O valor padrão para iniciar o sweep
> automático é 20.000, ou seja, quando a diferença entre o ID da próxima
> transação e a OIT for igual a 20.000, o sweep será disparado. Obviamente,
> após o término do sweep, o número da OIT será avançado.
>
> Fonte : Dbfreemagazine
>
>
> ----- Original Message -----
> From: "Marcio Roberto Chiaveli" <marcio.chiaveli em gmail.com>
> To: "FireBase" <lista em firebase.com.br>
> Sent: Monday, October 02, 2006 3:51 PM
> Subject: [firebase-br] [Firebase] Garbage Collection e SWEEP ?????
>
>
> Boa tarde Pessoal,
>
> O que é Garbage Collection e SWEEP no FB.
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
>
> _______________________________________________________
> Novidade no Yahoo! Mail: receba alertas de novas mensagens no seu celular.
> Registre seu aparelho agora!
> http://br.mobile.yahoo.com/mailalertas/
>
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>

______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa

Esta mensagem foi verificada pelo E-mail Protegido Terra.
Scan engine: McAfee VirusScan / Atualizado em 02/10/2006 / Versão:
4.4.00/4864
Proteja o seu e-mail Terra: http://mail.terra.com.br/








Mais detalhes sobre a lista de discussão lista