On Mon, Mar 7, 2011 at 8:47 PM, Fujii Masao <masao.fu...@gmail.com> wrote:
> On Sun, Mar 6, 2011 at 11:10 PM, Fujii Masao <masao.fu...@gmail.com> wrote:
>> On Sun, Mar 6, 2011 at 5:03 PM, Fujii Masao <masao.fu...@gmail.com> wrote:
>>>> Why does internal_flush_if_writable compute bufptr differently from
>>>> internal_flush?  And shouldn't it be static?
>>>>
>>>> It seems to me that this ought to be refactored so that you don't
>>>> duplicate so much code.  Maybe static int internal_flush(bool
>>>> nonblocking).
>>>>
>>>> I don't think that the while (bufptr < bufend) loop needs to contain
>>>> the code to set and clear the nonblocking state.  You could do the
>>>> whole loop with nonblocking mode turned on and then reenable it just
>>>> once at the end.  Besides possibly being clearer, that would be more
>>>> efficient and leave less room for unexpected failures.
>>>
>>> All these comments seem to make sense. Will fix. Thanks!
>>
>> Done. I attached the updated patch.
>
> I rebased the patch against current git master.

I added this replication timeout patch into next CF.

I explain why this feature is required for the future review;

Without this feature, walsender might unexpectedly remain for a while when
the standby crashes or the network outage happens. TCP keepalive can
improve this situation to a certain extent, but it's not perfect. Remaining
walsender can cause some problems.

For example, when hot_standby_feedback is enabled, such a remaining
walsender would prevent oldest xmin from advancing and interfere with
vacuuming on the master. For example, when you use synchronous
replication and walsender in SYNC mode gets stuck, any synchronous
standby candidate cannot switch to SYNC mode until that walsender exits,
and all the transactions would pause.

This feature causes walsender to exit when there is no reply from the
standby before the replication timeout expires. Then we can avoid the
above problems.

Regards,

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

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to