Re: hot_standby_feedback doesn't work on busy servers in 9.3+

Поиск
Список
Период
Сортировка
От Andres Freund
Тема Re: hot_standby_feedback doesn't work on busy servers in 9.3+
Дата
Msg-id 20140116084427.GG8653@awork2.anarazel.de
обсуждение исходный текст
Ответ на Re: hot_standby_feedback doesn't work on busy servers in 9.3+  (Amit Kapila <amit.kapila16@gmail.com>)
Ответы Re: hot_standby_feedback doesn't work on busy servers in 9.3+  (Amit Kapila <amit.kapila16@gmail.com>)
Re: hot_standby_feedback doesn't work on busy servers in 9.3+  (Heikki Linnakangas <hlinnakangas@vmware.com>)
Список pgsql-bugs
Hi,

On 2014-01-16 10:26:51 +0530, Amit Kapila wrote:
> > Looking into this I also noticed that the busy path is odd, because a)
> > why are we sending a reply before flushing things to disk? b)
> > XLogWalRcvFlush() will do it's own XLogWalRcvSendReply().
>
>    I think call to reply in XLogWalRcvFlush() might not actually send
>    reply because of time difference of last Reply message which we
>    sent before flush call.

Yes, but most of the time that will lead to only outdated data to be
sent since that's the first call. Hardly a severe issue, odd nonetheless.

>    The only point that occurs to me for having such a code is that
>    incase flush call fails due to disk space or some other such issue,
>    it can atleast send the correct write position to primary.

Unconvinced.

That's really a separate issue though.

> > To a good part that seems to have been introduced in
> > 6f60fdd7015b032bf49273c99f80913d57eac284.
>
>    I don't see that above commit has introduced this behaviour, as
>    the code in question seems to be there without commit as well,
>    means that HS feedback is only sent when we don't receive data in WAL
>    receiver.

Part of that commit is the following hunk:

@@ -609,19 +665,25 @@ XLogWalRcvFlush(bool dying)

        /* Also let the master know that we made some progress */
        if (!dying)
-       {
-           XLogWalRcvSendReply();
-           XLogWalRcvSendHSFeedback();
-       }
+           XLogWalRcvSendReply(false, false);
    }
 }

Before that commit XLogWalRcvFlush, which is in the "busy" path, sent
hot standby feedback. After that only the idle path does so.

Greetings,

Andres Freund

--
 Andres Freund                       http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services

В списке pgsql-bugs по дате отправления:

Предыдущее
От: Amit Kapila
Дата:
Сообщение: Re: hot_standby_feedback doesn't work on busy servers in 9.3+
Следующее
От: Amit Kapila
Дата:
Сообщение: Re: hot_standby_feedback doesn't work on busy servers in 9.3+