On 8/8/2004 8:10 AM, Jeff wrote:
> On Aug 8, 2004, at 1:29 AM, Martin Foster wrote:
>
>> I am currently making use of Apache::DBI which overrides the
>> DBI::disconnect call and keeps a pool of active connections for use
>> when need be. Since it offloads the pooling to the webserver, it
>> seems more advantageous then pgpool which while being able to run on a
>> external system is not adding another layer of complexity.
>>
>
> Apache::DBI is not the same sort of a pool as pgpool. DB connections
> are not shared among all your apache children (A common misconception).
> So if you have 300 apache kids you can have have 300 db connections.
> With pgpool connections are shared among all of them so even though
> you have 300 kids you only have say 32 db connections.
And this is exactly where the pgpool advantage lies. Especially with the
TPC-W, the Apache is serving a mix of PHP (or whatever CGI technique is
used) and static content like images. Since the 200+ Apache kids serve
any of that content by random and the emulated browsers very much
encourage it to ramp up MaxClients children by using up to 4 concurrent
image connections, one does end up with MaxClients DB connections that
are all relatively low frequently used. In contrast to that the real
pgpool causes lesser, more active DB connections, which is better for
performance.
>
>> Anyone had any experience with both Apache::DBI and pgpool? For my
>> needs they seem to do essentially the same thing, simply that one is
>> invisible to the code while the other requires adding the complexity
>> of a proxy.
>>
>
> Both are invisible to the app. (With pgpool it thinks it is connecting
> to a regular old PG server)
>
> And I've been running pgpool in production for months. It just sits
> there. Doesn't take much to set it up or configure it. Works like a
> champ
And it buys you some extra admin feature people like to forget about it.
One can shut down one pool for one web application only. That gives you
instant single user access to one database without shutting down the
whole webserver or tempering with the pg_hba.conf file.
Jan
--
#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me. #
#================================================== JanWieck@Yahoo.com #