On 10/15/2013 07:36 AM, Robert Haas wrote:
> On Tue, Oct 15, 2013 at 10:34 AM, Andres Freund <andres@2ndquadrant.com> wrote:
>> Josh said we should treat replication connections in a separate "pool"
>> from normal database connections, right? So you withdraw your earlier
>> objection to that?
>
> I don't think that's what he said. Here's what I was referring to:
To clarify: I do, indeed, support the idea of treating replication
connections as a pool outside of max_connections. Here's why:
FATAL: connection limit exceeded for non-superusers
SHOW max_connections;
100
SELECT COUNT(*) FROM pg_stat_activity;
94
SHOW superuser_reserved_connections;
3
????
... search around quite a bit, eventually figure out that you have
three replication connections open. We've already set up an illogical
and hard-to-troubleshoot situation where replication connections do not
appear in pg_stat_activity, yet they are counted against max_connections.
You could argue that the same is true of superuser_reserved_connections,
but there's a couple reasons why it isn't:
1) if superusers are actually connected, that shows up in
pg_stat_activity (and given how many of our users run their apps as
superuser, they get to max_connections out anyway).
2) the error message spells out that there may be superuser connections
available.
--
Josh Berkus
PostgreSQL Experts Inc.
http://pgexperts.com