Comparison to other poolers
PgDog aims to be the de facto PostgreSQL proxy and pooler. Below is a feature comparison between PgDog and a few popular alternatives.
Basics
| Feature | PgBouncer | PgCat | PgDog |
|---|---|---|---|
| Connection pooler | |||
| Load balancer | Requires external TCP proxy | ||
| Read/write separation | No | Basic support | Advanced support handling edge cases |
| Failover | No | ||
| Health checks | No | ||
| Authentication | md5, plain |
scram-sha-256, md5, plain |
|
| Metrics | Admin database only | OpenMetrics & admin database | OpenMetrics & admin database |
| Mirroring | No | Partial support | |
| TLS | |||
| Prepared statements | Partial support | ||
| Plugins | No | Hardcoded in core | |
| Session evariables in transaction mode | Partial support | Partial support |
Sharding
Sharding is not supported in PgBouncer, so it will be excluded from this section.
| Feature | PgCat | PgDog |
|---|---|---|
| Manual routing | Only using comments (regex), doesn't work with prepared statements | |
| Automatic routing | No | |
| Primary key generation | No | |
| Cross-shard queries | No | Partial support |
| COPY | No | |
| Postgres-compatible sharding functions | No | Same functions as declarative partitioning |
| Two-Phase Commit | No |