On Fri, 2011-01-21 at 17:33 +0200, Heikki Linnakangas wrote:
> On 21.01.2011 15:24, Simon Riggs wrote:
> > On Fri, 2011-01-21 at 14:45 +0200, Heikki Linnakangas wrote:
> >> * it seems like overkill to not let clients to even connect when
> >> allow_standalone_primary=off and no synchronous standbys are available.
> >> What if you just want to run a read-only query?
> >
> > That's what Aidan requested, I agreed and so its there. You're using
> > sync rep because of writes, so you have a read-write app. If you allow
> > connections then half of the app will work, half will not. Half-working
> > isn't very useful, as Aidan eloquently explained. If your app is all
> > read-only you wouldn't be using sync rep anyway. That's the argument,
> > but I've not got especially strong feelings it has to be this way.
>
> It's also possible that most of your transactions in fact do "set
> synchronous_replication=off", and only a few actually do synchronous
> replication. It would be pretty bad to not allow connections in that
> case. And what if you want to connect to the server to diagnose the
> issue? Oh, you can't... Besides, we're not kicking out existing
> connections, are we? Seems inconsistent to let the old connections live.
>
> IMHO the only reasonable option is to allow connections as usual, and
> only fail (or block forever) at COMMIT.
We all think our own proposed options are the only reasonable thing, but
that helps us not at all in moving forwards. I've put much time into
delivering options many other people want, so there is a range of
function. I think we should hear from Aidan first before we decide to
remove that aspect.
-- Simon Riggs http://www.2ndQuadrant.com/books/PostgreSQL Development, 24x7 Support, Training and Services