Re: Persistent connections in PHP

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

In response to

Responses

Browse pgsql-general by date

  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