Automated Benchmark Results
Last updated: 2026-02-04 08:38 UTC
These benchmarks are automatically generated by the CI pipeline using pgbench.
Test Environment
- Pool size: 40 connections
- Test duration: 30 seconds per test
- Instance: AWS Fargate (16 vCPU, 32 GB RAM)
- Workers: pg_doorman: 12, odyssey: 12
- pgbench jobs: 4 (global override)
- Started: 2026-02-04 07:15:48 UTC
- Finished: 2026-02-04 08:38:55 UTC
- Total duration: 1h 23m 7s
Legend
- +N%: pg_doorman is N% faster than competitor (e.g., +10% means pg_doorman is 10% faster)
- -N%: pg_doorman is N% slower than competitor (e.g., -10% means pg_doorman is 10% slower)
- ≈0%: Equal performance (difference less than 3%)
- ∞: Competitor failed (0 TPS), pg_doorman wins
- N/A: Test not supported by this pooler
- -: Test not executed
Simple Protocol
| Test |
vs pgbouncer |
vs odyssey |
| 1 client |
-5% |
-10% |
| 40 clients |
+37% |
-41% |
| 120 clients |
x3.0 |
-7% |
| 500 clients |
x2.8 |
≈0% |
| 10,000 clients |
x2.8 |
+20% |
| 1 client + Reconnect |
≈0% |
x3.5 |
| 40 clients + Reconnect |
+21% |
x2.4 |
| 120 clients + Reconnect |
+21% |
x2.1 |
| 500 clients + Reconnect |
+21% |
x2.2 |
| 10,000 clients + Reconnect |
+67% |
x3.3 |
| 1 client + SSL |
-7% |
-11% |
| 40 clients + SSL |
+69% |
-30% |
| 120 clients + SSL |
x3.3 |
-4% |
| 500 clients + SSL |
x3.3 |
+3% |
| 10,000 clients + SSL |
x3.4 |
+19% |
Extended Protocol
| Test |
vs pgbouncer |
vs odyssey |
| 1 client |
≈0% |
+33% |
| 40 clients |
+49% |
-11% |
| 120 clients |
x3.0 |
+43% |
| 500 clients |
x2.9 |
+55% |
| 10,000 clients |
x2.9 |
+80% |
| 1 client + Reconnect |
≈0% |
x10.5 |
| 40 clients + Reconnect |
+21% |
x2.7 |
| 120 clients + Reconnect |
+22% |
x2.3 |
| 500 clients + Reconnect |
+21% |
x2.1 |
| 10,000 clients + Reconnect |
+68% |
x2.2 |
| 1 client + SSL |
≈0% |
+33% |
| 40 clients + SSL |
+72% |
≈0% |
| 120 clients + SSL |
x3.4 |
+48% |
| 500 clients + SSL |
x3.5 |
+61% |
| 10,000 clients + SSL |
x3.5 |
+82% |
| 1 client + SSL + Reconnect |
+6% |
+11% |
| 40 clients + SSL + Reconnect |
+94% |
≈0% |
| 120 clients + SSL + Reconnect |
+92% |
≈0% |
| 500 clients + SSL + Reconnect |
+96% |
≈0% |
| 10,000 clients + SSL + Reconnect |
+90% |
≈0% |
Prepared Protocol
| Test |
vs pgbouncer |
vs odyssey |
| 1 client |
-8% |
-13% |
| 40 clients |
+70% |
-42% |
| 120 clients |
x3.7 |
-10% |
| 500 clients |
x3.4 |
≈0% |
| 10,000 clients |
x3.4 |
+21% |
| 1 client + Reconnect |
≈0% |
∞ |
| 40 clients + Reconnect |
≈0% |
∞ |
| 120 clients + Reconnect |
+4% |
∞ |
| 500 clients + Reconnect |
+6% |
∞ |
| 10,000 clients + Reconnect |
+28% |
∞ |
| 1 client + SSL |
≈0% |
-8% |
| 40 clients + SSL |
+97% |
-34% |
| 120 clients + SSL |
x3.9 |
-7% |
| 500 clients + SSL |
x4.0 |
+5% |
| 10,000 clients + SSL |
x4.0 |
+22% |
Notes
- Odyssey has poor support for extended query protocol in transaction pooling mode, resulting in significantly lower performance compared to pg_doorman and pgbouncer
- Important: The values shown are relative performance ratios, not absolute TPS numbers. While absolute TPS values may vary depending on hardware and system load, the relative ratios between poolers should remain consistent when tests are run sequentially in a short timeframe (30 seconds each). This allows for fair comparison across different connection poolers under identical conditions