28.07.10 04:56, Tom Lane написав(ла):
I'm not asserting it's true, just suggesting it's entirely possible.
Other than the fork() cost itself and whatever authentication activity
there might be, practically all the startup cost of a new backend can be
seen as cache-populating activities. You'd have to redo all of that,
*plus* pay the costs of getting rid of the previous cache entries.
Maybe the latter costs less than a fork(), or maybe not. fork() is
pretty cheap on modern Unixen.
Actually as for me, the problem is that one can't raise number of
database connections high without overloading CPU/memory/disk, so
external pooling is needed. If postgresql had something like
max_active_queries setting that limit number of connections that are not
in IDLE [in transaction] state, one could raise max connections high
(and I don't think idle process itself has much overhead) and limit
max_active_queries to get maximum performance and won't use external
pooling. Of course this won't help if the numbers are really high, but
could work out the most common cases.
Best regards, Vitalii Tymchyshyn
--
Sent via pgsql-performance mailing list (pgsql-performance@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-performance