Java: never felt the need even on quite big apps. As it's much easier to share a connection pool locally, it's not as many single connections across the whole app.
Does anyone run Postgres without PgBouncer?
21–30 of 121 posts
Re: Does anyone run Postgres without PgBouncer?
#22Re: Does anyone run Postgres without PgBouncer?
#23"Does anyone run Postgres without PgBouncer for non-trivial workloads?"
Because, as we can see from the comments so far, lots of people are going to say you don't need it for your blog that gets 10 hits a month.
I've personally never heard of anyone not using PGbouncer, or some connection pooling proxy, for reasonably concurrent workloads. PG's process-per-connection architecture almost requires it. Otherwise even a small connection storm will wreak havoc on your server.
Re: Does anyone run Postgres without PgBouncer?
#24Re: Does anyone run Postgres without PgBouncer?
#25In my case, with Go, I have always relied on http://github.com/jackc/pgx pool, which works quite well, especially with the binary protocol.
Re: Does anyone run Postgres without PgBouncer?
#26Are you kidding me? Have you heard about Data Direct? https://docs.progress.com/bundle/datadirect-postgresql-odbc-...
More importantly, it has capabilities that PgBouncer is not designed to provide. It can maintain alternate PostgreSQL servers, retry connections, randomize connection attempts across primary/alternate servers, and has explicit failover modes. The application retains a real PostgreSQL session while the driver handles connection reuse and failure handling.
That matters because of PgBouncer big technical compromise that is transaction pooling. This breaks the assumption that one client connection is the PostgreSQL backend session.
Consequently, several session scoped PostgreSQL features do not work normally in transaction pooling. PgBouncer own compatibility table, lists some of the limitations: https://www.pgbouncer.org/features.html
DataDirect does not need to solve that particular problem because its architecture does not perform that same transaction level back end swapping.
Re: Does anyone run Postgres without PgBouncer?
#27Then again, people forget you can just run your own Postgres (or anything really).
Re: Does anyone run Postgres without PgBouncer?
#28Yes. I've never even heard of PgBouncer.
Me too. I even opened the page and I'm not sure of what's the problem being solved.
PgBouncer opens a pool of connections and then reuses them each time a client asks for a connection. This reduces latency (no more fork) and overhead (reuse memory).
Re: Does anyone run Postgres without PgBouncer?
#29But because PgBouncer is so common, the question should probably be, why isn’t connection pooling part of Postgres out of the box? I think this might be the more interesting question.