DevGuideTK
← Trilha Backend

Pool de conexões

Por que abrir uma conexão por pedido não escala e como dimensionar o pool.

Um pool de conexões é um conjunto de conexões com o banco, abertas uma vez e reaproveitadas pelos pedidos da aplicação. Cada pedido pega uma conexão emprestada e a devolve ao terminar.

Abrir uma conexão custa caro, e o banco aceita um número limitado delas. O tamanho do pool decide se a aplicação aproveita o banco ou o sufoca.

  • Abrir uma conexão nova custa milissegundos; reaproveitar, microssegundos.
  • Mais conexões ativas que núcleos do banco aumentam a latência sem ganhar vazão.
  • A soma dos pools de todas as instâncias precisa caber no limite do banco.
  • Um intermediário como o PgBouncer junta muitos clientes em poucas conexões.
  • Esperar por uma conexão precisa de um tempo limite.