On 01/16/2014 11:55 PM, Andres Freund wrote:
> On 2014-01-16 23:24:13 +0200, Heikki Linnakangas wrote:
>> The reply message contains a pointers for how far the WAL has been applied,
>> written, and flushed. There can be a significant delay between the write and
>> flush steps, so we send a separate reply after writing, and after flushing.
>> (if we didn't, the flush and write pointers sent to the master would always
>> be the equal).
>
> If we'd always send a message, I'd be convinced by that argument, but
> we're only sending messages after a timeout. This means that if syncrep
> is on, we will more frequently have explicitly ask the receiver to send
> a confirmation since the reply before the flush will have reset the
> timers causing the reply after the flush to only infrequently send
> something.
No, XLogWalRcvSendReply also sends the reply if the flush or write
pointers have advanced since last reply, even if the timeout hasn't expired.
- Heikki