Re: too many clients - Mailing list pgsql-php

From Frank Bax
Subject Re: too many clients
Date
Msg-id 5.2.1.1.0.20041229125718.00a02520@pop6.sympatico.ca
Whole thread Raw
In response to Re: too many clients  (Matthew Terenzio <webmaster@localnotion.com>)
Responses Re: too many clients  ("Gavin M. Roy" <gmr@ehpg.net>)
List pgsql-php
At 12:12 PM 12/29/04, Matthew Terenzio wrote:


>On Dec 29, 2004, at 11:38 AM, Mitch Pirtle wrote:
>
>>You got a couple solutions, one of which is getting a connection
>>pooler setup between apache(php) and postgres.  SQL Relay
>>(sqlrelay.sf.net) could be a common candidate, as I have used it in
>>the past with great results.
>
>Yes, I have taken a look at that before. It might be a good time to try it.
>
>I don't exactly understand the technical difference between pooled
>connections and persistent ones.
>
>pg_pconnect() is grabbing an existing open connection if one is available.
>
>How is  a connection pool more efficient in doing something along these lines?


Have you read the php docs on persistent connections?
         http://www.php.net/manual/en/features.persistent-connections.php
pg_pconnect is sometimes used in situations where it does not make sense.

As you mentioned, apache uses numerous child process.  A persistent
connection can only be reused if the following things are the same:
         - same apache child process requests the connection
         - same connect string (ie host, database, user are *all* the same)

If you have a site where there are many databases and/or many users, it is
very easy for apache to retain more persistent connections than your
postgres limit.  There are many variables when trying to figure out which
function works better, so simply try it on your own system.  If pg_connect
does not add significant overhead, and manages to avoid the problems you
mentioned, then use it instead of pg_pconnect.

I haven't heard of pooled connections, but can only assume they somehow
overcome the problems with pg_pconnect gets out of control - perhaps the
connections are shared across apache child processes.

Frank


pgsql-php by date:

Previous
From: Mitch Pirtle
Date:
Subject: Re: too many clients
Next
From: "Gavin M. Roy"
Date:
Subject: Re: too many clients