Pgbouncer vs pgpool II

Olá a todos,

Gostaria de saber se algum de vocês tem experiência com o pgpool II em vez do pgbouncer ao usar o Discourse e, em caso afirmativo, qual é a sensação até agora?

Vocês, equipe, consideraram isso em algum momento e, se sim, por quê?

Obrigado,
Ismael

O pgpool II não possui pooling de transações. Sem pooling de transações, seu valor é extremamente limitado em hospedagem de grande escala e apenas adicionaria complexidade.

Em uma instalação “auto-hospedada” padrão do Discourse, você teria dificuldade em atingir 30-60 conexões ativas, e o PostgreSQL não teria problemas com isso. Não há necessidade de um pooler de conexões para adicionar complexidade à sua configuração.

Muito obrigado, Sam. De fato, como você disse, para um número reduzido de conexões, isso pode não fazer sentido. Além disso, considerando o pooling de transações, há apenas um vencedor neste caso.

No entanto, até onde sei, notei que o pgbouncer não oferece alta disponibilidade (HA), enquanto o pgpool II sim. Que tal colocar um pgbouncer “na frente” de um pgpool para permitir esse recurso? Qual é a recomendação para uma abordagem de HA que se adapte bem ao Discourse?

O Discourse oferece HA nativamente usando configuração global.

Veja: GitHub - discourse/rails_failover · GitHub

E explore as configurações globais aqui: discourse/config/discourse_defaults.conf at main · discourse/discourse · GitHub

Você configuraria 2 pgbouncers em um modo de alta disponibilidade ou com uma quantidade enorme de conexões necessárias.