Hi,
On 1/18/23 10:59 AM, Alvaro Herrera wrote:
> On 2023-Jan-18, Drouvot, Bertrand wrote:
>
>> The current calls are done that way:
>>
>> wait_for_replay_catchup called:
>> - 8 times with write LSN as an argument
>> - 1 time with insert LSN as an argument
>> - 16 times with flush LSN as an argument
>
>> So it looks like that providing a node as a second argument
>> would not help for the wait_for_replay_catchup() case.
>
> ... unless we changed the calls that wait for reply that use write or
> insert so that they use flush instead.
That's a good idea, thanks! Please find attached V2 doing so.
> Surely everything should still
> work, right?
Right.
> Flushing would still occur, either right after the write
> (as the transaction commits) or ~200ms afterwards when WAL writer
> catches up to that point.
>
> I suppose this may fail to be true if there is some test that is
> specifically testing whether writing WAL without flushing works, which
> should rare enough, but if it does exist,
I don't see this kind of test.
Please note that V2 does not contain wait_for_flush_catchup() and
wait_for_sent_catchup() anymore as: 1) they are not used yet
and 2) it lets to their author (if any) decide the node->lsn() mode to be used.
This is also mentioned as a comment in V2.
Regards,
--
Bertrand Drouvot
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com