Odyssey vs PgBouncer
Odyssey
pg-odyssey.techPgBouncer
pgbouncer.orgSide by side
| Figure | Odyssey | PgBouncer |
|---|---|---|
| Price from | — | Free |
| Free plan | — | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | — | Yes |
| macOS | Yes | — |
| Linux | Yes | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 0 | 1 |
| Spec score · Database Proxy Software | 7.5 (#17) | 7.7 (#11) |
| Authentication | Odyssey supports SSL/TLS, md5 and clear-text authentication, and PAM and LDAP authentication. | Documented authentication options include client certificates, SCRAM-SHA-256, LDAP, PAM, and HBA-based configuration. |
| Distribution | The project documents Debian and Ubuntu packages from PGDG, public Docker images, Docker builds, and local builds. | The downloads page offers source releases and points to native OS packages and dedicated RPM and Debian package repositories. |
| Load balancing | Odyssey distributes connections or requests among multiple PostgreSQL servers and selects hosts using configured priorities. | PgBouncer has no internal multi-host load-balancing configuration; its FAQ describes using DNS round-robin or an external TCP load balancer such as HAProxy or LVS. |
| Pooling modes | Odyssey supports session pooling and transaction pooling, with transaction pooling suited to stateless workloads but not preserving session state between transactions. | It supports session, transaction, and statement pooling, with statement pooling disallowing multi-statement transactions. |
| Prepared statements | Prepared statements can be used with transaction pooling when pool_reserve_prepared_statement is enabled. | It can track protocol-level prepared statements in transaction and statement pooling when max_prepared_statements is non-zero. |
| Purpose | Odyssey is an advanced, multithreaded PostgreSQL connection pooler and request router. | PgBouncer is a PostgreSQL connection pooler that reuses server connections to reduce the performance impact of opening new connections. |
Plans
In their own words
PgBouncer
PgBouncer is a self-hosted connection pooler for PostgreSQL. It reuses server connections to lessen the performance cost of opening new ones, and offers session, transaction, and statement pooling. Statement pooling does not allow multi-statement transactions. PgBouncer can send connections to databases on different hosts, but it has no built-in multi-host load balancing or failover detection; DNS round-robin, external TCP load balancers, DNS changes, or external tools are described as alternatives. It can track protocol-level prepared statements in transaction and statement modes when max_prepared_statements is non-zero. Authentication options include client certificates, SCRAM-SHA-256, LDAP, PAM, and HBA-based configuration. The features page lists default memory needs of 2 kB per connection. PgBouncer is free, with source releases and references to native packages and RPM and Debian repositories. It runs on Linux and Windows; MinGW is the documented supported Windows build environment. Building requires Libevent 2.0 or later, pkg-config, and a C11-capable compiler; TLS support also requires OpenSSL.