Por favor, use este identificador para citar o enlazar este ítem:
https://repositorio.ufu.br/handle/123456789/49993| ORCID: | http://orcid.org/0009-0002-1400-6772 |
| Tipo de documento: | Trabalho de Conclusão de Curso |
| Tipo de acceso: | Acesso Aberto |
| Título: | Connection pooling em postgresql: caracterização empírica do ponto de equilíbrio entre sobrecarga e contenção |
| Título (s) alternativo (s): | connection pooling in postgresql: empirical characterization of the break-even point between overhead and contention |
| Autor: | Moreira, Jean Souto Galvão |
| Primer orientador: | Lima, Maria Adriana Vidigal de |
| Primer miembro de la banca: | Fernandes, Márcia Aparecida |
| Segundo miembro de la banca: | Araújo, Rafael Dias |
| Resumen: | Sistemas de banco de dados PostgreSQL sofrem degradação severa de desempenho sob alta concorrência de conexões, em razão do modelo process-per-connection e da contenção em estruturas internas de locking. Os connection poolers são a mitigação padrão da indústria, mas a decisão de adotá-los costuma se apoiar em heurísticas, e não em evidência quantitativa, pois falta uma caracterização pública do ponto de concorrência a partir do qual o pooler compensa a sobrecarga que introduz. Este trabalho investiga essa transição por meio de uma análise empírica controlada de seis configurações de conexão sobre PostgreSQL 18 em nuvem AWS: conexão direta (baseline), PgBouncer e PgCat nos modos transaction e session, e o AWS RDS Proxy. Ao longo de 1.332 ensaios, variaram-se a carga de trabalho, o modo de query, a concorrência e o tamanho do pool, com instrumentação não apenas do cliente, mas também do interior do servidor. Os resultados indicam a existência de um ponto de equilíbrio: em baixa concorrência, o pooler apenas acrescenta latência; acima de algumas dezenas de clientes (cerca de 30 na carga de escrita), a conexão direta colapsa por contenção, enquanto o pooler mantém a vazão estável. A instrumentação do servidor atribui esse ganho à redução da contenção interna de locks, e não a um custo de conexão menor. A arquitetura multi-thread (PgCat) só supera a single-thread (PgBouncer) quando o próprio pooler se torna o recurso crítico, e o pooling gerenciado (RDS Proxy) apresenta teto de vazão inferior ao das alternativas auto-hospedadas. O estudo oferece uma caracterização aberta e reprodutível desse ponto de equilíbrio para PostgreSQL, sustentada por evidência causal coletada no servidor. |
| Abstract: | PostgreSQL database systems suffer severe performance degradation under high connection concurrency, owing to their process-per-connection model and contention in internal locking structures. Connection poolers are the industry-standard mitigation, but the decision to adopt one usually rests on heuristics rather than quantitative evidence, since there is no public characterization of the concurrency point beyond which a pooler offsets the overhead it introduces. This work investigates that transition through a controlled empirical analysis of six connection configurations over PostgreSQL 18 in an AWS cloud environment: a direct connection (baseline), PgBouncer and PgCat in transaction and session modes, and AWS RDS Proxy. Across 1,332 trials, the workload, query mode, concurrency, and pool size were varied, with instrumentation of both the client and the server internals. The results indicate a break-even point: at low concurrency the pooler merely adds latency; beyond a few dozen clients (about 30 under the write workload), the direct connection collapses under contention while the pooler keeps throughput stable. Server-side instrumentation attributes this gain to reduced internal lock contention rather than to a lower connection cost. The multi-threaded pooler (PgCat) outperforms the single-threaded one (PgBouncer) only when the pooler itself becomes the critical resource, and managed pooling (RDS Proxy) shows a lower throughput ceiling than the self-hosted alternatives. The study provides an open, reproducible characterization of this break-even for PostgreSQL, grounded in causal evidence collected at the server. |
| Notas: | Código-fonte, infraestrutura e informações do experimento disponíveis em: https://github.com/jean-souto/postgres-pooler-benchmark-tcc |
| Palabras clave: | PostgreSQL Connection pooling PgBouncer PgCat Contenção de locks Computação em nuvem Lock contention Cloud computing |
| Área (s) del CNPq: | CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO::BANCO DE DADOS |
| Idioma: | por |
| País: | Brasil |
| Editora: | Universidade Federal de Uberlândia |
| Cita: | MOREIRA, Jean Souto Galvão. Connection pooling em PostgreSQL: caracterização empírica do ponto de equilíbrio entre sobrecarga e contenção. 2026. 63 f. Trabalho de Conclusão de Curso (Graduação em Ciência da Computação) – Universidade Federal de Uberlândia, Uberlândia, 2026. |
| URI: | https://repositorio.ufu.br/handle/123456789/49993 |
| Fecha de defensa: | 31-jul-2026 |
| Aparece en las colecciones: | TCC - Ciência da Computação |
Ficheros en este ítem:
| Fichero | Tamaño | Formato | |
|---|---|---|---|
| connection-pooling-postgresql (1).pdf | 6.35 MB | Adobe PDF | Visualizar/Abrir |
Los ítems de DSpace están protegidos por copyright, con todos los derechos reservados, a menos que se indique lo contrario.