Boa tarde a todos,
Tenho uma dúvida quanto a implementação do vacuum na versão 8.3.
Lendo na documentação vi que agora vários processos de vacuum vão rodar
concorrentemente para que seja mais rápido tal processo, só que, esses
múltiplos processos vão se basear na leitura dos datafile ou dos objetos
do banco (tabelas/indices)?? Isso não ficou muito claro na palestra do
David Fetter que rolou no PGCon.
Vou expor o problema para que sugestões/idéias possam ser
repassados.
Estou desenvolvendo um sistema de tracking e fazendo alguns
testes iniciais de carga vimos que teremos tabelas diarias com média de
30MM de registros e com 10GB. Para esta solução usarei tabelas
particionadas (criadas com INHERITS a partir de uma pai) e vou gravando
os dados diários nessas tabelas por um périodo de dois meses (depois
movo pra arquivo morto), só que nesse período precisarei do banco voando
e para isso terei que contar com meu amigo vacuum para dar uma mãozinha.
Em experiências anteriores com um FS muito grande o vacuum chegou a
demorar 1 dia para rodar, isso porque desabilitei o auto vacuum que me
gerava um load animal na máquina, então, a minha idéia inicial foi:
Caso o vacuum da versão 8.3 se baseie nos datafile e não nos
objetos (assumi isso e nivelei por baixo) crio 2 FileSystem (1 tables e
1 indexs) a cada dia e crio TABLESPACE em cima desses FS e crio toda a
estrutura de tabelas compartilhadas em cima desses TABLESPACE. Agendaria
processos no servidor para passar o vacuum full em tabelas DIA-1 (dia
anterior), o que me daria mais performance já que o número de datafile
que o vacuum teria que varrer seria MUITO menor e o SO controlaria para
mim o buffer e a fila de i/o de cada FS independente e não teria
problemas de ter lock na tabela, já que ela foi rotacionada. Só que isso
demanda um sincronismo MUITO redondo por parte das aplicações para que
não zoem minha tabela do fstab outras coisas e eu teria que correr esse
risco.
Vocês teriam alguma outra idéia, solução?
Obrigado.
Leandro Damascena.
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral