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 | Partial support |
TLS | |||
Prepared statements | Partial support | ||
Plugins | No | Hardcoded in core | Experimental, via shared libraries |
Session variables 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 | Work in progress |