Why we built yet another Postgres connection pooler
1–10 of 74 posts
Re: Why we built yet another Postgres connection pooler
#2Re: Why we built yet another Postgres connection pooler
#3Wow this is very bad. This actually happens in typical Postgres setups?
Re: Why we built yet another Postgres connection pooler
#4> Since connection poolers reuse connections between clients, the connection state of one client “leaks” into the connection state of another. Wow this is very bad. This actually happens in typical Postgres setups?
in pgbouncer the connection is reset via a customisable command [0] which should reset the connection to a clean state.
[0] https://www.pgbouncer.org/config.html#server_reset_query
Re: Why we built yet another Postgres connection pooler
#5> Since connection poolers reuse connections between clients, the connection state of one client “leaks” into the connection state of another. Wow this is very bad. This actually happens in typical Postgres setups?
Re: Why we built yet another Postgres connection pooler
#6> Since connection poolers reuse connections between clients, the connection state of one client “leaks” into the connection state of another. Wow this is very bad. This actually happens in typical Postgres setups?
Re: Why we built yet another Postgres connection pooler
#7Re: Why we built yet another Postgres connection pooler
#8Clickhouse also just put out a fun article on scaling pgbouncer too, talking about scaling out so_reuseport while not having to shard so harshly (a major limitation pgdog here is addressing via rewrite), https://clickhouse.com/blog/pgbouncer-clickhouse-managed-pos... https://news.ycombinator.com/item?id=48814152
The notify/listen fix and automatic query routing to read replicas and auto sharding might bringt Postgres finally closer to vitess
Re: Why we built yet another Postgres connection pooler
#9Re: Why we built yet another Postgres connection pooler
#10Doesn't this NOTIFY performance fix mean that it isn't transactional any more?
We show that it's possible to come close without breaking the DB or the app, but I suspect, it's not quite yet at the level you'd expect from a _durable_ work queue, e.g., Kafka. Not going to replace that one anytime soon.