Re: How should the waiting backends behave in sync rep? - Mailing list pgsql-hackers

From Fujii Masao
Subject Re: How should the waiting backends behave in sync rep?
Date
Msg-id AANLkTikGYYjNgHE4-YSmg7vpw7Tek8ZGRUaNTQXpKrxm@mail.gmail.com
Whole thread Raw
In response to Re: How should the waiting backends behave in sync rep?  (Robert Haas <robertmhaas@gmail.com>)
Responses Re: How should the waiting backends behave in sync rep?
List pgsql-hackers
On Thu, Mar 10, 2011 at 2:06 AM, Robert Haas <robertmhaas@gmail.com> wrote:
> On Tue, Mar 8, 2011 at 10:06 AM, Fujii Masao <masao.fujii@gmail.com> wrote:
>> How should the backends waiting for replication behave when
>> synchrnous_standby_names
>> is set to '' and the configuration file is reloaded? Now they keep
>> waiting for the ACK from the
>> standby. But I think that it's more natural for them to get out of the
>> wait state and complete
>> the transaction in that case. If we'll change them in that way, we
>> would no longer need
>> something like "pg_ctl standalone" which I mentioned in another thread. Thought?
>
> I think so.  Looking at assign_synchronous_standby_names, the
> following code just looks wrong:
>
>        if (doit && list_length(elemlist) > 0)
>                sync_standbys_defined = true;
>
> Once sync_standbys_defined becomes true, there's no way for it to ever
> become false again.  That can't be right.  That means that if you
> disable sync rep by zeroing out synchronous_standby_names, backends
> that already existed at the time you made the change will continue to
> act as though sync rep is enabled until they exit.

Yes, that's a bug. Yeah, sync rep currently seems to have many TODO items.
I added some of them in wiki.
http://wiki.postgresql.org/wiki/PostgreSQL_9.1_Open_Items

Regards,

--
Fujii Masao
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center


pgsql-hackers by date:

Previous
From: Gurjeet Singh
Date:
Subject: Re: Fwd: psql include file using relative path
Next
From: Andrew Dunstan
Date:
Subject: Re: Fwd: psql include file using relative path