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

From: Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com>
To: Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>
Cc: "Hayato Kuroda (Fujitsu)" <kuroda(dot)hayato(at)fujitsu(dot)com>, Shlok Kyal <shlok(dot)kyal(dot)oss(at)gmail(dot)com>, Bertrand Drouvot <bertranddrouvot(dot)pg(at)gmail(dot)com>, shveta malik <shveta(dot)malik(at)gmail(dot)com>, Ashutosh Bapat <ashutosh(dot)bapat(dot)oss(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-09-15 16:45:09
Message-ID: CAD21AoCWzHZQ=G4LMx0pGnTFMFYFOB42woC99AG_T9CZVkuv_w@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Sun, Sep 14, 2025 at 7:55 PM Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> wrote:
>
> On Fri, Sep 12, 2025 at 11:18 PM Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com> wrote:
> >
> > On Thu, Sep 11, 2025 at 9:08 PM Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> wrote:
> > >
> >
> > > For the shutdown sequence, can't we think of resetting effective_wal
> > > after a restart?
> >
> > Does it mean that effective_wal_level keeps 'logical' until the next
> > server starts?
> >
>
> Yes, IIUC, effective_wal_level is anyway a derived value based on
> current wal_level and presence of logical slots. So, what will be the
> impact if it is not accurate at shutdown?

I think there won't be an impact at shutdown time. I would rather be
concerned that such behavior could confuse users. I think it would not
be a rare situation where users enable and disable logical decoding by
creating and dropping a temporary slot. If we keep effective_wal_level
'logical' in this case, users would want to somehow disable logical
decoding as it could have a negative performance impact. There would
be two ways for users to change it to 'replica': restart the server or
create and drop a logical slot again. On the other hand, for users who
dropped a non-temporary logical slot without an error or dropped the
non-last temporary slot, logical decoding is disabled without other
manual interventions. It could be pretty hard to assess the situation,
resulting in having users always checking effective_wal_level after
dropping a logical slot and doing extra steps to make the
effective_wal_level 'replica'.

Regards,

--
Masahiko Sawada
Amazon Web Services: https://aws.amazon.com

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Pavel Stehule 2025-09-15 16:55:44 Re: proposal: schema variables
Previous Message Robert Haas 2025-09-15 16:32:15 Re: plan shape work