Re: Persistent connections in PHP - Mailing list pgsql-general

From Torsten Zühlsdorff
Subject Re: Persistent connections in PHP
Date
Msg-id f9ueqd$jj0$1@registered.motzarella.org
Whole thread Raw
In response to Re: Persistent connections in PHP  (Hannes Dorbath <light@theendofthetunnel.de>)
List pgsql-general
Hannes Dorbath schrieb:
> On 14.08.2007 23:13, Dmitry Koterov wrote:
>> Pconnects are absolutely necessary if we use tsearch2, because it
>> initializes its dictionaries on a first query in a session. It's a very
>> heavy process (500 ms and more). So, if we do not use pconnect, we waste
>> about 500 ms on each DB connection. Too much pain.
>
> We've been using pconnect for exactly the same reason. Though startup
> time for our dictionary is even higher (around 2 seconds). The problem
> is that persistent connections in PHP are not clean implemented, they
> can get randomly garbage collected. The problem seems well known, though
> I'm unaware of any fix. I think it's best to use pgbouncer and plain
> connect ATM. Additionally, as mentioned earlier, using pconnect under
> the Apache webserver is not a good idea at all, at least not with it's
> current architecture.

If the dictionary is not too large, you should store it directly in the
memory of the server. Therefore you can use Shared Memory
(http://www.php.net/shmop, http://de3.php.net/manual/en/ref.sem.php).

Another advantage of the solution is, that you have one dictionary for
all php-childs - so you do not waste memory by loading the dictionary
each request.

Greetings,
Torsten

pgsql-general by date:

Previous
From: Torsten Zühlsdorff
Date:
Subject: Re: Persistent connections in PHP
Next
From: john_sm
Date:
Subject: Enterprise Wide Deployment