Re: "caught_up" status in walsender - Mailing list pgsql-hackers

From Dimitri Fontaine
Subject Re: "caught_up" status in walsender
Date
Msg-id m2ocft5il6.fsf@hi-media.com
Whole thread Raw
In response to "caught_up" status in walsender  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: "caught_up" status in walsender  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
Tom Lane <tgl@sss.pgh.pa.us> writes:

> I wrote:
>> I'm still inclined to apply the part of Simon's patch that adds a
>> transmit timestamp to each SR send chunk.  That would actually be
>> completely unused by the slave given my proposal above, but I think that
>> it is an important step to take to future-proof the SR protocol against
>> possible changes in the slave-side timing logic.
>
> On further contemplation, it seems like the protocol needs another field
> besides that: each record should also carry a boolean indicating whether
> walsender.c thinks it is currently "caught up", ie the record carries
> all WAL data up to the current end of WAL.  If the sender is not caught
> up, then the receiver should apply max_archive_delay not
> max_streaming_delay.  In this way, WAL chunks that are a little bit
> behind current time will be treated the same way whether they come
> across the SR link or via the archive.

Then we'd have max_catchup_delay and max_streaming_delay, wouldn't we?

I'm still trying to understand the implications of the proposal, which
sounds good but… given just enough load on the slave, wouldn't it be
playing catchup all the time? Wouldn't enough load mean one read query
per write commit on the master?

Regards,
--
dim


pgsql-hackers by date:

Previous
From: Simon Riggs
Date:
Subject: Re: Allow wal_keep_segments to keep all segments
Next
From: Heikki Linnakangas
Date:
Subject: Re: Keepalive for max_standby_delay