Re: POC: enable logical decoding when wal_level = 'replica' without a server restart

From: Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>
To: Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com>
Cc: shveta malik <shveta(dot)malik(at)gmail(dot)com>, "Hayato Kuroda (Fujitsu)" <kuroda(dot)hayato(at)fujitsu(dot)com>, Ashutosh Bapat <ashutosh(dot)bapat(dot)oss(at)gmail(dot)com>, Shlok Kyal <shlok(dot)kyal(dot)oss(at)gmail(dot)com>, Bertrand Drouvot <bertranddrouvot(dot)pg(at)gmail(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: POC: enable logical decoding when wal_level = 'replica' without a server restart
Date: 2025-10-15 10:56:24
Message-ID: CAA4eK1LNcE4dZ+=5auUSg00o62viAf8h_oUXv4SAyKPs=usK0A@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Tue, Oct 14, 2025 at 11:40 PM Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com> wrote:
>
> On Tue, Oct 14, 2025 at 2:24 AM shveta malik <shveta(dot)malik(at)gmail(dot)com> wrote:
> >
> > Thanks. I was testing slot-sync worker flow and noticed that even if
> > 'sync_replication_slots' is enabled, it takes quite some time (1-2
> > mins) for slot sync worker to start. On noticing
> > XLOG_LOGICAL_DECODING_STATUS_CHANGE, isn't there a way to (or
> > shouldn't we) wakeup postmaster to start slotsync worker immediately?
> >
> > Logs for timestamps reference:
> >
> > 2025-10-14 14:41:32.852 IST [208475] LOG: replication slot
> > synchronization requires "effective_wal_level" >= "logical" on the
> > primary
> > 2025-10-14 14:41:32.852 IST [208475] HINT: To enable logical decoding
> > on primary, set "wal_level" >= "logical" or create at least one
> > logical slot when "wal_level" = "replica".
> > 2025-10-14 14:41:35.499 IST [208481] LOG: update logical decoding status to 1
> > 2025-10-14 14:41:35.499 IST [208481] CONTEXT: WAL redo at 0/03000060
> > for XLOG/LOGICAL_DECODING_STATUS_CHANGE: true
> > 2025-10-14 14:42:53.611 IST [208529] LOG: slot sync worker started
> > ------
>
> I think that this particular situation happened because the postmaster
> was sleeping and didn't have any tasks. If a new connection comes in
> or the existing connection exits, the postmaster launches the slotsync
> worker. I believe it would not be a serious issue in practice.
>

Right, but OTOH, do we see any harm if we wake up the postmaster on
such an event? It shouldn't happen frequently to matter either way
though.

> > There was a lot of discussion regarding slotsync worker in the past,
> > please let me know if it is concluded and I missed it somehow.
>
> Since we've discussed that it's out of scope of this patch that we
> shutdown dynamically upon logical decoding status changes, even if
> logical decoding status gets disabled on the standby, the slotsync
> worker keeps working. If it gets enabled again, we don't need to wake
> up the postmaster as the slotsync worker would already be running. I
> think we can introduce more dynamic control over the slotsync worker
> in a separate patch if we need.
>

I think it is better to stop the slotsync worker at this event because
without a patch we won't even allow the server to restart if the
wal_level on standby is less than logical. But, I agree it could be
done as a separate patch as well.

--
With Regards,
Amit Kapila.

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Arseniy Mukhin 2025-10-15 11:19:40 Re: Optimize LISTEN/NOTIFY
Previous Message Shlok Kyal 2025-10-15 10:45:01 Re: How can end users know the cause of LR slot sync delays?