Esta semana passei fazendo muitos testes de stress com o PostgreSQL, ainda não terminei de compilar os resultados e também cometi algumas falhas para ter um critério científico mas segue algumas impressões que tive ou que os moderninhos e nerds dizem "Um brainstorm".
Ajustes de performance no PostgreSQL são mais fáceis para aplicações Web e/ou Data Warehousing. Com boa modelagem e tipo de indíces corretos fazem salto espetaculares de desempenho. Ajustes de aplicações OLTP são bem mais difíceis de melhora no desempenho. Conhecer a quantidade de instruções como INSERT, UPDATE e DELETE são fundamentais para alterar os parâmetros do arquivo de configuração (postgresql.conf) do postgresql.
Não existe soluções em Software Livre/Código Aberto satisfatório para Cluster: Para bases grandes ou PgCluster ou Pgpool-2 são interessantes mas escalar eles. Usá-los como forma para escalar PostreSQL não é boa saída mas são bons em situações que não precisam de transações do tipo OLTP. Existes soluções terceiras em Java e outras linguagens para escalar o PostgreSQL como Sequoia.
Gostei mais do Pgpool-2 por ser menos intrusivo que PgCluster no código do PostgreSQL, não precisei de aplicar um patch (modificação no código). Infelizementes, ainda não as soluções livres no PostgreSQL usam Commit Two Phases para validar as transações em de soluções de Alta-Disponibilidade ou Balanceamento de Carga mas isso deve ser solucionado em breve.
Não testei a solução da Greenplum é focada para Data Warehousing porquê não era o foco mas sim testar o PostgreSQL com OLTP.
No fim dos testes fiquei com a sensação que o elefante (mascote do PostgreSQL) aguenta o tranco mas precisa conhecer bastante a aplicação e os parâmetros do PostgreSQL para a melhor peformance.
Assim que terminar de compilar os dados e documentar os testes eu posto aqui. Tem divergência ou acrescentar algo? Comenta ou manda ou email aí.






on Mar 11th, 2007 at 22:24
Meu animal esses seus testes, espero um dia chegar nesse nível!
Abração =)
on Mar 11th, 2007 at 22:35
“No fim dos testes fiquei com a sensação que o elefante (mascote do PostgreSQL) aguenta o tranco mas precisa conhecer bastante a aplicação e os parâmetros do PostgreSQL para a melhor peformance.”
Mas isso não deveria se aplicar a QUALQUER banco de dados? Se bem que, do jeito que hardware virou commodity, é mais fácil tacar mais força computacional…
on Mar 11th, 2007 at 22:48
Sim e não, O postgreSQL precisa de um utilizar o comando Vacuum para liberar espaço, reorganizar os dados e atualizar as estatísticas por causa do MVCC. Atualmente é possível usar o autovacuum que automatiza o uso do Vacuum mas aparentemente esse ajuste é mais difícil porque impacta bastante na performance do banco.
Deveria mesmo mas as pessoas de TI não enxergam isso de forma muito óbvia. =/