Episode
Comparing Postgres connection pooler support for prepared students
with Jelte Fennema-Nio
Video of a conference talk about all the Postgres connection poolers presented by Jelte Fennema-Nio at POSETTE: An Event for Postgres 2024. Connection poolers have always been very important to achieve good performance in transactional workloads with Postgres. Sadly, for a long time this meant that you couldn't use prepared statements to reduce Postgres query planning overhead. But recently that has changed because prepared statements are now supported by PgBouncer, Odyssey, pgcat, and Supavisor.
In this talk you'll learn about the differences in prepared statement design, performance, and support between these connection poolers.
If you're interested in the answers to one of the following questions, then this is the talk for you:
How can a connection pooler can be useful when you are using Postgres? Which connection pooler should you choose? Technical details about why Postgres prepared statements are so difficult for connection poolers
Jelte is currently working on Citus, Postgres and Pgbouncer at Microsoft. Before that he was a big time Postgres user at Stream, where he worked on low latency APIs for chat and social timelines. He is one of the current maintainers of the PgBouncer project. Jelte studied at the University of Amsterdam where he received his BSc in Computer Science and MSc in System and Network Engineering.
Chapters
- 00:00 - Intro
- 00:42 - What are connection poolers?
- 02:17 - What are prepared statements?
- 04:03 - Why is it difficult with transaction pooling?
- 06:03 - What options are there?
- 09:01 - Time to optimize!
- 13:41 - So many edge case bugs!
- 18:34 - What about performance?
- 21:25 - Which pooler handles prepared statements best?
Recommended resources
Related episodes
Connect
- Twitter/X – @PosetteConf
- Mastodon - @posetteconf
- Threads – @posetteconf
- Subscribe to the POSETTE News
- Jelte Fennema-Nio | Twitter/X: @JelteF | LinkedIn: /in/jeltef/
Video of a conference talk about all the Postgres connection poolers presented by Jelte Fennema-Nio at POSETTE: An Event for Postgres 2024. Connection poolers have always been very important to achieve good performance in transactional workloads with Postgres. Sadly, for a long time this meant that you couldn't use prepared statements to reduce Postgres query planning overhead. But recently that has changed because prepared statements are now supported by PgBouncer, Odyssey, pgcat, and Supavisor.
In this talk you'll learn about the differences in prepared statement design, performance, and support between these connection poolers.
If you're interested in the answers to one of the following questions, then this is the talk for you:
How can a connection pooler can be useful when you are using Postgres? Which connection pooler should you choose? Technical details about why Postgres prepared statements are so difficult for connection poolers
Jelte is currently working on Citus, Postgres and Pgbouncer at Microsoft. Before that he was a big time Postgres user at Stream, where he worked on low latency APIs for chat and social timelines. He is one of the current maintainers of the PgBouncer project. Jelte studied at the University of Amsterdam where he received his BSc in Computer Science and MSc in System and Network Engineering.
Chapters
- 00:00 - Intro
- 00:42 - What are connection poolers?
- 02:17 - What are prepared statements?
- 04:03 - Why is it difficult with transaction pooling?
- 06:03 - What options are there?
- 09:01 - Time to optimize!
- 13:41 - So many edge case bugs!
- 18:34 - What about performance?
- 21:25 - Which pooler handles prepared statements best?
Recommended resources
Related episodes
Connect
- Twitter/X – @PosetteConf
- Mastodon - @posetteconf
- Threads – @posetteconf
- Subscribe to the POSETTE News
- Jelte Fennema-Nio | Twitter/X: @JelteF | LinkedIn: /in/jeltef/
Have feedback? Submit an issue here.