[firebase-br] Ainda sobre SWEEP (Firebird) e VACUUM (PostgreSQL)

Walter Cruz walter.php em gmail.com
Ter Out 3 13:07:40 -03 2006


Olá a todos.

Muito bacana essa discussão sobre VACUUM e SWEEP. E muito bacana a
explicação do Eduardo Jedliczka sobre páginas. Interessantíssimo.

Não quero criar flames - atualmente sou usuário do PostgreSQL e acho o
Firebird também interessante.

Porém o Cantu levantou alguns pontos que gostaria de falar sobre:

"No entanto, o PostgreSQL é bem mais complexo de se configurar e dar
manutenção, não existe nem um décimo das ferramentas e componentes de
acesso que o Firebird tem, e o processo de limpeza do banco (chamado
por eles de VACCUUM) exige conexão exclusiva com o banco.

Tire suas próprias conclusões."

Bom: O VACUUM NÃO exige conexão exclusiva com o banco. O VACUUM puro usa um
lock chamado ShareUpdateExclusiveLock (quem quiser curiar o fonte do
PostgreSQL, está em lock.h). Do manual:

"O  VACUUM simples (sem o  FULL) simplemente reclama espaço e o torna
disponível para reutilização. Essa forma de comando pode operar em paralelo
com a leitura e escrita na tabela, já que um lock exclusivo não é obtido. O
VACUUM FULL faz um processamento mais extensivo, incluindo mover tuplas nos
blocos para tentar compactar a tabela ao número mínimo necessário de blocos
no disco. Essa forma é mais lenta e requer um lock exclusivo em cada tabela
enquanto está sendo processado"

Ora, o VACUUM pode ser usado concorrentemente com INSERTS, UPDATES e
DELETES, sem problema.

O VACUUM FULL faz o que o Firebid só faz com um backup do banco - encolher o
tamanho do banco. Nesse caso, um lock exclusivo e necessário - outras
transações deverão esperar.

No mais, eu, que uso Linux, tenho encontrado pouquissimas ferramentas para
Firebird no Linux. Tem o Flamerobin, mais ainda é meio instável (e eu não
sei C nem tenho tempo suficiente pra contribuir). No mais, há drivers ODBC,
JDBC, conexão com python, php e o que mais precisar no PostgreSQL.

A dificuldade de administração tem sido mitigada. Hoje, já existe o
auto-vacuum, embora ele venha desabilitado por padrão. E a dificuldade de
configuração está diminuindo. A partir da versão 8.2, será possível
configurar valores em MB ou KB, por exemplo.Isso e muito mais :). Sua
aparente complexidade na configuração é decorrente de sua flexibilidade.

Não me entendam mal - reitero: não quero causar flame-wars. Uso o
PostgreSQL, acho o Firebird um banco bacana (inclusive comprei o livro do
Cantu. Na época fiquei um mês desejando-o, e fiquei bem satisfeito com o
conteúdo!). Porém é chato quando informações incorretas são divulgadas.

(Me copiem no cc.. Estou em modo digest, só vou ler os e-mails de vocês sei
lá quando..)

[]'s
- Walter



Mais detalhes sobre a lista de discussão lista