~/talk

Comparing Postgres connection pooler support for prepared statements

Talkat POSETTE: An Event for Postgres 2024 · 2024-06-11..06-13· [databases]
slides:none on file

Postgres poolers PgBouncer, Odyssey, pgcat and Supavisor now support prepared statements but with different designs and tradeoffs: Odyssey remaps client names to unique server names and re-prepares on new server connections to avoid conflicts (connection-level naming), PgBouncer implements the feature with many edge-case fixes and shows >2x throughput for prepared queries on a single process and even better with Multi-PgBouncer, Odyssey and Multi-PgBouncer give ~25–30% gains, pgcat re-prepares every time causing memory bloat, and Supavisor only supports SQL-level prepared statements not the common protocol-level prepared statements.

AI-written summary · about

  1. 0:00Intro
  2. 0:42What are connection poolers?
  3. 2:17What are prepared statements?
  4. 4:03Why is it difficult with transaction pooling?
  5. 6:03What options are there?
  6. 9:01Time to optimize!
  7. 13:41So many edge case bugs!
  8. 18:34What about performance?
  9. 21:25Which pooler handles prepared statements best?
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.