Re: Proposal: GUC to control starting/stopping logical subscription workers - Mailing list pgsql-hackers

From Bharath Rupireddy
Subject Re: Proposal: GUC to control starting/stopping logical subscription workers
Date
Msg-id CALj2ACXojFsWYN4-4bNeKa2YDo9Tj1jANXBRkk7LD+OZumx7Dg@mail.gmail.com
Whole thread Raw
In response to Proposal: GUC to control starting/stopping logical subscription workers  (SATYANARAYANA NARLAPURAM <satyanarlapuram@gmail.com>)
Responses Re: Proposal: GUC to control starting/stopping logical subscription workers
List pgsql-hackers
Hi,

On Tue, Aug 12, 2025 at 8:40 PM SATYANARAYANA NARLAPURAM
<satyanarlapuram@gmail.com> wrote:
>
> I couldn't find a previous discussion on a new GUC to globally enable or disable logical subscription workers at the
instancelevel. So starting a new thread on this. 
>
> In multi-region or high-availability setups, a promoted standby often requires a controlled switchover before it
shouldstart applying logical replication changes from upstream. Without such control, a promoted standby may
immediatelyattempt to connect to the publisher as a logical subscriber, which can cause it to unexpectedly take over
replicationslots, start pulling changes before the setup is ready, or even conflict with the original primary that is
stillusing those slots. Disabling the subscription on the primary before promoting a standby is not possible in all
cases,for example during PITR or data center outages. 
>
> Providing a way to keep logical subscriptions globally disabled—via a GUC setting—prior to promotion ensures that no
changesare accidentally pulled or applied before the system is fully prepared. This avoids race conditions and the risk
ofdata divergence. 
>
> I would like to propose adding a GUC with the following behavior:
>
> Default value for the GUC is ON, same behavior as now without the GUC
> When off, no new apply workers start and existing ones exit gracefully similar to when subscription disabled
> When turned on again, behavior will be the same as the current behavior
> This GUC shouldn't require a restart

If I understand correctly, the end effect is similar to disabling all
subscriptions. Why not just add ALTER SUBSCRIPTION ... DISABLE for all
subscriptions in the failover work flow? Migration of logical
replication slots docs says so -
https://www.postgresql.org/docs/18/logical-replication-upgrade.html.

--
Bharath Rupireddy
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com



pgsql-hackers by date:

Previous
From: Melanie Plageman
Date:
Subject: Re: eliminate xl_heap_visible to reduce WAL (and eventually set VM on-access)
Next
From: Robert Haas
Date:
Subject: Re: eliminate xl_heap_visible to reduce WAL (and eventually set VM on-access)