From: | Torsten Zühlsdorff <thorny(at)meisterderspiele(dot)de> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Persistent connections in PHP |
Date: | 2007-08-15 08:53:24 |
Message-ID: | f9ueqd$jj0$1@registered.motzarella.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 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
From | Date | Subject | |
---|---|---|---|
Next Message | Hannes Dorbath | 2007-08-15 09:08:47 | Re: Persistent connections in PHP |
Previous Message | Karsten Hilbert | 2007-08-15 08:43:59 | Re: check if database is correctly created |