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í.