Re: Exit walsender before confirming remote flush in logical replication

Поиск
Список
Период
Сортировка
От Andrey Silitskiy
Тема Re: Exit walsender before confirming remote flush in logical replication
Дата
Msg-id fef66b3d-a569-469c-89e2-fb34f8a8cf93@postgrespro.ru
обсуждение исходный текст
Ответ на Re: Exit walsender before confirming remote flush in logical replication  (Alexander Korotkov <aekorotkov@gmail.com>)
Ответы RE: Exit walsender before confirming remote flush in logical replication
Список pgsql-hackers
Hi, Alexander! Thanks for your comments!

On Jan 3, 2026 at 2:32 AM  Alexander Korotkov
<aekorotkov(at)gmail(dot)com> wrote:
 > I think it is reasonable to move control over the walsender
 > shutdown behavior to the primary server.  I see an analogy with
 > synchronous_commit and synchronous_standby_names. Primary decides
 > which standbys wait and which way to wait for them. Similarly,
 > the primary should decide who to wait on the shutdown.

With the current patch, the walsender process termination mode is set
on the primary server using a GUC variable, and clients who do not want
to wait for a data flush to any of the replicas can configure this
parameter for specific replicas (wal_sender_timeout is currently working
in a similar way, which was also discussed in the thread [1]).

 > I propose to rename GUC to default_wal_sender_shutdown_mode.
 > Also, given we would more likely need to wait for a flush during
 > streaming replication, I would suggest following modes: immediate,
 > wait_for_flush_streaming_only, wait_for_flush.  The new intermediate
 > option would make walsender wait for a flush only for physical
 > standbys but not for logical subscribers.

Currently, in this patch, it is also possible to configure the server
so that it waits only for physical replicas. The administrator is given
the opportunity to flexibly change the default wait_flush mode for each
replica individually. In this case, you do not need to add this feature
inside modes of the proposed GUC default_wal_sender_shutdown_mode, but
you can save place for a potential semantically new mode besides wait_flush
and immediate (for example, waiting for the flush only for a certain period
of time, and then terminating the process).

[1]: 
https://www.postgresql.org/message-id/flat/0A3221C70F24FB45833433255569204D1FAAD3AE%40G01JPEXMBYT05



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