I can speak to your final point. I recently deployed PGBouncer into our
production environment and, like the OP, we have separate web and database
servers. With PGBouncer running on the web server(you could also run it on
the database server if you wanted to) we noticed a dramatic increase in
performance. I haven't looked into it in detail but my best guess is that
running the pool on the web server eliminates the overhead of establishing
new connections(DNS lookups, establishing TCP connections, authentication,
waiting for the database to spool up a new process, etc).


On Tue, Apr 22, 2014 at 12:18 PM, Perrin Harkins <phark...@gmail.com> wrote:

> Interesting.  Why did you have to install PgBouncer?  Can't Postgres
> handle remote connections from your web server?
>
> I don't use Postgres, but reading the description of PgBouncer I can
> see some things you'd want to consider.
>
> First, Apache::DBI prevents you from making persistent connections
> before the parent process forks.  If you don't use it, you should
> check your code to make sure that it closes any handles it opens
> during server startup.
>
> Second, there's the issue of what happens when your code throws an
> exception.  Apache::DBI will issue a rollback on any active handles
> that aren't in autocommit mode after each request.  If you don't use
> it, I'd suggest adding your own cleanup handler to do a rollback.
>
> Finally, there's the issue of performance.  It's not clear whether DBI
> connects faster when using PgBouncer.  You should probably benchmark
> that yourself.  You may still get a significant speed boost from
> caching the connections (with Apache::DBI) on the client side.
>
> - Perrin
>
> On Tue, Apr 22, 2014 at 10:02 AM, jbiskofski <jbiskof...@gmail.com> wrote:
> > I just want to confirm something with all you smart folks.
> >
> > I recently separated my web servers from my database servers, before I
> was
> > using Apache::DBI to maintain persistent connections between Apache and
> > Postgres. With this new setup I had to install PgBouncer. Can I now
> safely
> > remove Apache::DBI from my application and use regular DBI ??
> >
> > Thank you.
> >
>

Reply via email to