On Mon, Aug 5, 2013 at 2:04 AM, Andres Freund <andres@2ndquadrant.com> wrote:
>> Hmm. It seems like this match is making MaxConnections no longer mean
>> the maximum number of connections, but rather the maximum number of
>> non-replication connections. I don't think I support that
>> definitional change, and I'm kinda surprised if this is sufficient to
>> implement it anyway (e.g. see InitProcGlobal()).
>
> I don't think the implementation is correct, but why don't you like the
> definitional change? The set of things you can do from replication
> connections are completely different from a normal connection. So using
> separate "pools" for them seems to make sense.
> That they end up allocating similar internal data seems to be an
> implementation detail to me.
Because replication connections are still "connections". If I tell
the system I want to allow 100 connections to the server, it should
allow 100 connections, not 110 or 95 or any other number.
I'm also not sure the decision about whether something is a WAL sender
is made early enough for the distinction to really make sense. WAL
senders actually start off, from the postmaster's POV, as regular
backends, and then become walsenders "on the fly".
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company