Re: Exit walsender before confirming remote flush in logical replication - Mailing list pgsql-hackers

From Ronan Dunklau
Subject Re: Exit walsender before confirming remote flush in logical replication
Date
Msg-id acPtXlUKpmJHvXx4vRwPYELf-LG9IF56tzUlJiPJ0_83g96bKdDftJcMCN3NjgsHe2ovovJAgADBWbytYx_yMKY6xArr-_NL8ywDf-gBf4E=@dunklau.fr
Whole thread
In response to Re: Exit walsender before confirming remote flush in logical replication  (Andrey Silitskiy <a.silitskiy@postgrespro.ru>)
Responses Re: Exit walsender before confirming remote flush in logical replication
List pgsql-hackers
Le mercredi 28 janvier 2026 à 12:33, Andrey Silitskiy <a.silitskiy@postgrespro.ru> a écrit :
> This is also possible in the current implementation, but your option offers
> a simpler interface if we do not plan to add new wallsender completion
> modes.
> The naming of the parameter is also a question, because wal_sender_timeout
> already exists (which also fits the name wal_sender_stop_timeout quite
> well).
> The difference between these parameters may not be obvious to users.
> Thoughts?

The naming can probably be revisited but the use case I have in mind
is the following:

- we want to bound the time it takes to perform a restart, or a stop, with walsenders setup.
- the immediate shutdown solves this problem
- however, if one were to stop the service before doing a pg_upgrade, they would
have no other choice than either disable the behaviour entirely (by switching to
wait_flush) or fail the upgrade if a logical replication slot is pending
changes. Switching to wait_flush may be acceptable in that case, but then if the walreceiver
does not catch up in time we're back to agressively stopping postgres to abort
the waiting stop process, and the upgrade entirely.

So in my mind having a timeout makes a lot more sense.

What do you think ?



pgsql-hackers by date:

Previous
From: Aditya Kamath
Date:
Subject: RE: Decoupling our alignment assumptions about int64 and double
Next
From: Jakub Wartak
Date:
Subject: Re: Problems with get_actual_variable_range's VISITED_PAGES_LIMIT