title: Benchmarks

Performance Benchmarks

Automated Benchmark Results

Last updated: 2026-04-11 12:44 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-04-11 11:21:03 UTC
  • Finished: 2026-04-11 12:44:05 UTC
  • Total duration: 1h 23m 2s

How to Read

TPS tables — relative throughput: pg_doorman vs pgbouncer and odyssey.

SymbolMeaning
+N%pg_doorman is N% faster
-N%pg_doorman is N% slower
≈0%Within 3%, effectively equal
xNN times faster/slower (large gap)
Competitor scored 0 TPS
N/ANot supported by this pooler
-Not executed

Latency tables — absolute transaction latency in milliseconds. Each cell shows p50 / p95 / p99 percentiles. Lower is better.


Simple Protocol

Throughput

Testvs pgbouncervs odyssey
1 client-5%-10%
40 clients-24%x0.3
120 clients-9%x0.3
500 clients-13%x0.3
10,000 clients≈0%x0.4
1 client + Reconnect≈0%x26.0
40 clients + Reconnect+19%x2.8
120 clients + Reconnect+19%+86%
500 clients + Reconnect+19%x2.3
10,000 clients + Reconnect+64%+97%
1 client + SSL≈0%-7%
40 clients + SSL+10%x0.5
120 clients + SSL+40%x0.4
500 clients + SSL+47%x0.4
10,000 clients + SSL+63%-42%

Latency — p50 / p95 / p99 (ms)

Testpg_doorman (ms)pgbouncer (ms)odyssey (ms)
1 client0.07 / 0.08 / 0.090.07 / 0.08 / 0.080.06 / 0.07 / 0.08
40 clients0.74 / 0.82 / 0.860.53 / 0.78 / 0.810.21 / 0.42 / 0.54
120 clients2.27 / 2.43 / 2.502.03 / 2.33 / 2.470.46 / 1.45 / 2.29
500 clients9.93 / 10.50 / 10.698.48 / 9.62 / 10.450.88 / 12.93 / 22.46
10,000 clients194.24 / 198.04 / 205.08189.87 / 206.61 / 221.843.65 / 390.30 / 637.56
1 client + Reconnect0.07 / 0.08 / 0.090.06 / 0.08 / 0.080.07 / 0.09 / 0.12
40 clients + Reconnect1.08 / 2.21 / 2.521.02 / 2.37 / 11.580.75 / 2.69 / 3.52
120 clients + Reconnect3.31 / 6.22 / 7.423.18 / 6.95 / 33.324.35 / 8.80 / 11.00
500 clients + Reconnect14.08 / 25.45 / 29.1513.86 / 30.04 / 118.7523.65 / 43.08 / 65.44
10,000 clients + Reconnect294.26 / 513.32 / 546.17604.24 / 924.80 / 961.10542.93 / 922.84 / 1092.06
1 client + SSL0.08 / 0.09 / 0.100.08 / 0.09 / 0.100.07 / 0.09 / 0.09
40 clients + SSL0.66 / 0.74 / 0.790.69 / 1.00 / 1.070.25 / 0.53 / 0.75
120 clients + SSL2.00 / 2.14 / 2.202.78 / 3.15 / 3.390.50 / 1.86 / 3.82
500 clients + SSL8.71 / 9.13 / 9.3412.62 / 14.29 / 15.261.06 / 15.99 / 28.55
10,000 clients + SSL173.70 / 180.58 / 186.38279.06 / 292.34 / 382.705.89 / 469.96 / 768.96

Extended Protocol

Throughput

Testvs pgbouncervs odyssey
1 client+5%+40%
40 clients-18%-49%
120 clients-5%x0.5
500 clients-9%x0.5
10,000 clients≈0%-37%
1 client + Reconnect≈0%x4.0
40 clients + Reconnect+21%x2.5
120 clients + Reconnect+20%x2.3
500 clients + Reconnect+18%+95%
10,000 clients + Reconnect+63%x2.2
1 client + SSL+6%+38%
40 clients + SSL-10%-46%
120 clients + SSL+13%x0.5
500 clients + SSL+16%-50%
10,000 clients + SSL+38%-28%
1 client + SSL + Reconnect+5%+10%
40 clients + SSL + Reconnect+91%≈0%
120 clients + SSL + Reconnect+92%≈0%
500 clients + SSL + Reconnect+93%≈0%
10,000 clients + SSL + Reconnect+88%≈0%

Latency — p50 / p95 / p99 (ms)

Testpg_doorman (ms)pgbouncer (ms)odyssey (ms)
1 client0.07 / 0.08 / 0.080.07 / 0.08 / 0.090.10 / 0.11 / 0.12
40 clients0.73 / 0.81 / 0.850.56 / 0.83 / 0.860.31 / 0.61 / 0.80
120 clients2.26 / 2.41 / 2.482.11 / 2.46 / 2.610.72 / 2.44 / 3.95
500 clients9.88 / 10.37 / 10.578.84 / 10.15 / 10.791.03 / 20.12 / 34.87
10,000 clients193.17 / 196.37 / 199.57198.35 / 205.46 / 217.573.69 / 489.50 / 942.06
1 client + Reconnect0.07 / 0.08 / 0.090.07 / 0.08 / 0.090.11 / 0.12 / 0.14
40 clients + Reconnect1.08 / 2.21 / 2.521.05 / 2.44 / 10.910.85 / 2.67 / 3.46
120 clients + Reconnect3.32 / 6.24 / 7.473.23 / 7.05 / 33.194.70 / 9.38 / 11.28
500 clients + Reconnect14.11 / 25.63 / 29.1613.97 / 29.40 / 117.9723.89 / 43.61 / 50.39
10,000 clients + Reconnect295.31 / 515.67 / 550.22593.23 / 918.61 / 958.93522.83 / 939.84 / 1086.13
1 client + SSL0.08 / 0.09 / 0.090.08 / 0.09 / 0.100.11 / 0.12 / 0.13
40 clients + SSL0.83 / 0.93 / 0.970.71 / 1.04 / 1.120.38 / 0.77 / 1.03
120 clients + SSL2.56 / 2.73 / 2.812.86 / 3.29 / 3.490.87 / 3.04 / 5.17
500 clients + SSL11.39 / 12.04 / 12.3113.00 / 14.86 / 16.141.25 / 24.01 / 42.55
10,000 clients + SSL212.95 / 216.10 / 231.20287.79 / 308.72 / 401.8914.65 / 587.21 / 1020.74
1 client + SSL + Reconnect0.10 / 0.13 / 0.140.08 / 0.10 / 0.110.10 / 0.12 / 0.14
40 clients + SSL + Reconnect13.17 / 24.64 / 26.7825.17 / 46.24 / 46.7713.25 / 24.84 / 26.76
120 clients + SSL + Reconnect40.00 / 74.57 / 81.8475.98 / 141.41 / 151.7240.20 / 74.29 / 82.05
500 clients + SSL + Reconnect166.28 / 309.73 / 332.04317.52 / 599.89 / 643.58167.21 / 310.92 / 337.99
10,000 clients + SSL + Reconnect3107.01 / 6295.18 / 6626.095339.46 / 11847.88 / 12444.273113.78 / 6245.48 / 6642.69

Prepared Protocol

Throughput

Testvs pgbouncervs odyssey
1 client-4%-11%
40 clients-5%x0.3
120 clients+15%x0.3
500 clients+10%x0.3
10,000 clients+21%x0.4
1 client + Reconnect≈0%
40 clients + Reconnect≈0%
120 clients + Reconnect≈0%
500 clients + Reconnect+6%
10,000 clients + Reconnect+22%
1 client + SSL-4%-9%
40 clients + SSL+4%x0.4
120 clients + SSL+28%x0.3
500 clients + SSL+33%x0.3
10,000 clients + SSL+56%x0.5

Latency — p50 / p95 / p99 (ms)

Testpg_doorman (ms)pgbouncer (ms)odyssey (ms)
1 client0.07 / 0.08 / 0.080.07 / 0.07 / 0.080.06 / 0.07 / 0.08
40 clients0.72 / 0.80 / 0.840.67 / 0.95 / 1.000.20 / 0.40 / 0.53
120 clients2.23 / 2.37 / 2.422.52 / 2.82 / 2.940.42 / 1.39 / 2.26
500 clients9.59 / 10.07 / 10.2710.40 / 11.45 / 12.090.81 / 12.57 / 21.84
10,000 clients187.91 / 192.43 / 203.97224.50 / 240.41 / 252.263.52 / 380.15 / 622.55
1 client + Reconnect0.12 / 0.13 / 0.150.11 / 0.12 / 0.14-
40 clients + Reconnect1.60 / 3.06 / 3.371.64 / 3.02 / 3.352.04 / 3.93 / 4.87
120 clients + Reconnect4.61 / 8.53 / 9.924.76 / 8.82 / 9.955.79 / 13.97 / 44.86
500 clients + Reconnect19.32 / 34.87 / 38.2720.44 / 37.22 / 41.9924.32 / 68.90 / 149.10
10,000 clients + Reconnect400.17 / 718.30 / 756.77475.32 / 903.35 / 952.33-
1 client + SSL0.08 / 0.09 / 0.090.08 / 0.08 / 0.090.07 / 0.08 / 0.09
40 clients + SSL0.81 / 0.90 / 0.940.82 / 1.17 / 1.260.22 / 0.50 / 0.75
120 clients + SSL2.49 / 2.65 / 2.723.15 / 3.40 / 3.710.46 / 1.77 / 3.85
500 clients + SSL10.93 / 11.56 / 11.8514.39 / 15.69 / 16.980.96 / 15.07 / 27.22
10,000 clients + SSL207.95 / 212.67 / 226.54315.01 / 330.71 / 486.666.12 / 450.62 / 744.07

Notes

  • Odyssey has poor support for extended query protocol in transaction pooling mode
  • TPS values are relative ratios, not absolute numbers — they stay consistent across sequential runs on the same hardware
  • Latency percentiles are absolute values collected via pgbench --log