PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como o pgbouncer se comporta quando o pool de transações está habilitado e uma única instrução é emitida?


https://pgbouncer.github.io/usage.html

https://pgbouncer.github.io/config.html#description

No seu caso, se a transação nunca for finalizada (commitida, revertida), ela atingirá idle_transaction_timeout (desabilitado por padrão) e idle in transaction conexão voltará ao pool, permitindo que outros se conectem. Se você tiver o valor padrão para ele, em algum momento todo o pool de conexões será preenchido, portanto, o novo será rejeitado. A partir deste ponto, suas instruções únicas não funcionarão - elas aguardarão a conexão gratuita que nunca aparece.

Em relação a instruções únicas - elas não são "transformadas em transações por pgbounce" nem "no pool de transações, cada comando é uma transação por si só". Isso é controlado por AUTOCOMMIT para cada sessão.