title: Benchmarks

Benchmarks

pg_doorman vs pgbouncer vs odyssey. Each test runs pgbench for 30 seconds through a 40-connection pool.

Last updated: 2026-04-21 18:54 UTC

Environment

  • Instance: AWS Fargate (16 vCPU, 32 GB RAM)
  • Workers: pg_doorman: 12, odyssey: 12
  • pgbench jobs: 4 (global override)
  • Started: 2026-04-21 17:31:01 UTC
  • Finished: 2026-04-21 18:54:11 UTC
  • Total duration: 1h 23m 9s

Reading the tables

Throughput — pg_doorman TPS relative to each competitor:

ValueMeaning
+N%Faster by N%
-N%Slower by N%
≈0%Within 3%
xNN times faster or slower
Competitor got 0 TPS
N/AUnsupported
-Not tested

Latency — per-transaction latency in ms. Each cell: p50 / p95 / p99. Lower is better.


Simple protocol

Throughput

Testvs pgbouncervs odyssey
1 client-3%-9%
40 clients+82%-5%
120 clientsx2.6≈0%
500 clientsx2.5+6%
10,000 clientsx2.7+18%
1 client + Reconnect-6%x9.0
40 clients + Reconnect+21%x2.1
120 clients + Reconnect+19%+98%
500 clients + Reconnect+20%+97%
10,000 clients + Reconnect+63%x2.1
1 client + SSL-8%-8%
40 clients + SSLx2.1≈0%
120 clients + SSLx3.1+6%
500 clients + SSLx3.0+11%
10,000 clients + SSLx3.2+17%

Latency — p50 / p95 / p99 (ms)

Testpg_doorman (ms)pgbouncer (ms)odyssey (ms)
1 client0.07 / 0.07 / 0.080.07 / 0.08 / 0.080.06 / 0.07 / 0.07
40 clients0.26 / 0.36 / 0.440.46 / 0.67 / 0.710.22 / 0.42 / 0.57
120 clients0.49 / 1.86 / 3.031.81 / 2.12 / 2.240.54 / 1.33 / 1.84
500 clients3.54 / 5.64 / 6.467.59 / 8.71 / 9.330.99 / 13.19 / 22.41
10,000 clients69.42 / 71.72 / 75.83184.39 / 202.56 / 213.442.70 / 326.10 / 570.34
1 client + Reconnect0.06 / 0.08 / 0.090.06 / 0.06 / 0.070.07 / 0.09 / 0.10
40 clients + Reconnect1.07 / 2.19 / 2.521.02 / 2.34 / 11.931.00 / 2.74 / 3.35
120 clients + Reconnect3.36 / 6.33 / 7.623.37 / 7.10 / 31.614.67 / 9.45 / 11.54
500 clients + Reconnect13.77 / 25.15 / 28.8613.61 / 30.11 / 125.7922.99 / 41.95 / 48.02
10,000 clients + Reconnect295.83 / 515.96 / 559.54562.42 / 926.93 / 972.88597.47 / 1078.06 / 1365.21
1 client + SSL0.08 / 0.09 / 0.100.08 / 0.08 / 0.090.07 / 0.09 / 0.09
40 clients + SSL0.29 / 0.44 / 0.560.64 / 0.93 / 1.000.27 / 0.51 / 0.67
120 clients + SSL0.59 / 2.32 / 3.932.56 / 2.93 / 3.140.67 / 1.65 / 2.30
500 clients + SSL4.16 / 6.85 / 7.8410.89 / 12.64 / 13.551.23 / 16.20 / 27.94
10,000 clients + SSL82.15 / 86.57 / 91.75262.65 / 289.09 / 367.394.24 / 387.21 / 753.84

Extended protocol

Throughput

Testvs pgbouncervs odyssey
1 client+5%+40%
40 clients+98%+43%
120 clientsx2.8+60%
500 clientsx2.7+64%
10,000 clientsx2.8+74%
1 client + Reconnect-4%x3.0
40 clients + Reconnect+20%x2.2
120 clients + Reconnect+21%+88%
500 clients + Reconnect+21%+100%
10,000 clients + Reconnect+61%+27%
1 client + SSL+4%+36%
40 clients + SSLx2.3+48%
120 clients + SSLx3.2+65%
500 clients + SSLx3.4+69%
10,000 clients + SSLx3.4+73%
1 client + SSL + Reconnect+9%+13%
40 clients + SSL + Reconnect+96%+5%
120 clients + SSL + Reconnect+99%+5%
500 clients + SSL + Reconnectx2.0+5%
10,000 clients + SSL + Reconnect+93%+5%

Latency — p50 / p95 / p99 (ms)

Testpg_doorman (ms)pgbouncer (ms)odyssey (ms)
1 client0.07 / 0.07 / 0.080.07 / 0.08 / 0.080.09 / 0.10 / 0.11
40 clients0.25 / 0.35 / 0.430.48 / 0.72 / 0.760.32 / 0.62 / 0.84
120 clients0.47 / 1.82 / 2.991.87 / 2.27 / 2.390.83 / 2.33 / 3.48
500 clients3.45 / 5.48 / 6.267.77 / 9.35 / 9.691.31 / 18.35 / 31.99
10,000 clients67.94 / 70.05 / 72.43188.62 / 206.44 / 218.363.74 / 468.64 / 810.47
1 client + Reconnect0.07 / 0.08 / 0.080.06 / 0.08 / 0.090.10 / 0.12 / 0.13
40 clients + Reconnect1.08 / 2.21 / 2.551.03 / 2.40 / 11.130.92 / 2.77 / 3.66
120 clients + Reconnect3.27 / 6.20 / 7.443.23 / 7.11 / 33.544.61 / 9.52 / 11.37
500 clients + Reconnect13.83 / 25.40 / 29.1213.80 / 30.20 / 118.8823.89 / 43.77 / 67.05
10,000 clients + Reconnect298.47 / 519.98 / 573.71569.79 / 921.35 / 966.33549.71 / 1052.37 / 1402.38
1 client + SSL0.08 / 0.09 / 0.090.08 / 0.10 / 0.100.11 / 0.12 / 0.13
40 clients + SSL0.29 / 0.44 / 0.590.67 / 0.99 / 1.070.39 / 0.80 / 1.08
120 clients + SSL0.56 / 2.31 / 3.902.62 / 3.06 / 3.241.07 / 2.90 / 4.35
500 clients + SSL4.16 / 6.87 / 7.8812.30 / 14.21 / 15.641.71 / 22.66 / 38.83
10,000 clients + SSL81.93 / 86.01 / 89.18280.73 / 308.19 / 385.99139.94 / 557.71 / 844.51
1 client + SSL + Reconnect0.10 / 0.12 / 0.130.08 / 0.10 / 0.110.09 / 0.12 / 0.12
40 clients + SSL + Reconnect12.31 / 23.03 / 25.0224.07 / 44.29 / 46.7012.99 / 24.30 / 26.07
120 clients + SSL + Reconnect37.28 / 69.57 / 76.1873.98 / 137.78 / 147.3239.21 / 72.80 / 79.97
500 clients + SSL + Reconnect157.07 / 292.82 / 319.41311.77 / 593.21 / 673.84165.06 / 306.22 / 336.63
10,000 clients + SSL + Reconnect2954.51 / 5951.58 / 6556.465078.21 / 11531.36 / 12358.703096.16 / 6192.08 / 6844.73

Prepared protocol

Throughput

Testvs pgbouncervs odyssey
1 client-4%-8%
40 clientsx2.4-7%
120 clientsx3.5≈0%
500 clientsx3.3+8%
10,000 clientsx3.1+16%
1 client + Reconnect≈0%
40 clients + Reconnect≈0%
120 clients + Reconnect≈0%
500 clients + Reconnect+4%
10,000 clients + Reconnect+25%
1 client + SSL-4%-5%
40 clients + SSLx2.7≈0%
120 clients + SSLx3.8+6%
500 clients + SSLx3.7+11%
10,000 clients + SSLx3.9+15%

Latency — p50 / p95 / p99 (ms)

Testpg_doorman (ms)pgbouncer (ms)odyssey (ms)
1 client0.06 / 0.07 / 0.070.06 / 0.07 / 0.070.06 / 0.07 / 0.07
40 clients0.24 / 0.34 / 0.420.60 / 0.88 / 0.910.20 / 0.40 / 0.53
120 clients0.47 / 1.72 / 2.792.25 / 2.60 / 2.690.51 / 1.27 / 1.79
500 clients3.31 / 5.28 / 6.049.35 / 10.58 / 11.200.90 / 12.75 / 21.56
10,000 clients66.31 / 69.32 / 72.46205.26 / 221.39 / 243.492.76 / 306.09 / 534.07
1 client + Reconnect0.11 / 0.13 / 0.140.10 / 0.12 / 0.130.15 / 0.18 / 0.19
40 clients + Reconnect1.56 / 3.01 / 3.331.59 / 2.95 / 3.311.86 / 3.56 / 4.61
120 clients + Reconnect4.49 / 8.39 / 9.734.60 / 8.55 / 9.726.76 / 83.39 / 88.89
500 clients + Reconnect18.64 / 34.07 / 37.7219.43 / 35.46 / 39.8624.27 / 197.01 / 297.22
10,000 clients + Reconnect396.39 / 710.66 / 769.05483.59 / 927.03 / 1000.58483.21 / 1256.91 / 1563.08
1 client + SSL0.08 / 0.09 / 0.090.07 / 0.08 / 0.090.07 / 0.08 / 0.09
40 clients + SSL0.28 / 0.42 / 0.570.80 / 1.15 / 1.240.24 / 0.48 / 0.65
120 clients + SSL0.56 / 2.19 / 3.673.00 / 3.27 / 3.490.63 / 1.60 / 2.27
500 clients + SSL3.95 / 6.56 / 7.5112.70 / 13.91 / 15.231.10 / 15.54 / 26.49
10,000 clients + SSL79.24 / 84.27 / 88.85308.74 / 326.58 / 488.805.17 / 364.12 / 633.46

Notes

  • Odyssey performs poorly with extended query protocol in transaction pooling mode
  • Throughput values are relative ratios — comparable across runs on identical hardware
  • Latency values are absolute, measured per-transaction