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

From: "Hayato Kuroda (Fujitsu)" <kuroda(dot)hayato(at)fujitsu(dot)com>
To: 'Masahiko Sawada' <sawada(dot)mshk(at)gmail(dot)com>
Cc: Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>, Bertrand Drouvot <bertranddrouvot(dot)pg(at)gmail(dot)com>, Ashutosh Bapat <ashutosh(dot)bapat(dot)oss(at)gmail(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>, shveta malik <shveta(dot)malik(at)gmail(dot)com>
Subject: RE: POC: enable logical decoding when wal_level = 'replica' without a server restart
Date: 2025-07-28 12:34:21
Message-ID: OSCPR01MB149663D242F6E97630758DD6EF55AA@OSCPR01MB14966.jpnprd01.prod.outlook.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Dear Sawada-san,

> Thank you for testing the patch!
>
> I've reworked the locking part in the patch. The attached v4 patch
> should address all review comments including your previous
> comments[1].

Thanks for making the patch! I resumed to spending time for the project.
Here are my comments.

1.
Just in case - can you modify xlogdesc.c based on your fix?

2.
Currently pg_upgrade has below checking:
```
if (nslots_on_old > 0 && strcmp(wal_level, "logical") != 0)
pg_fatal("\"wal_level\" must be \"logical\" but is set to \"%s\"",
wal_level);
```

But this can be relaxed because wal_level can be adjusted appropriately. IIUC it
is enough to be higher than "minimal". Is it right?

3.
Currently pg_createsubscriber has below checking:
```
if (strcmp(wal_level, "logical") != 0)
{
pg_log_error("publisher requires \"wal_level\" >= \"logical\"");
failed = true;
}
```

I feel the checking is completely not needed, because pg_createsubscriber needs
a streaming standby and wal_level = minimal cannot be set with this node placement.
Thought?

4.
We should update PG_CONTROL_VERSION and pg_controldata as well.

5.
I'm wondering how pg_resetwal handles. Since all the replication slot cannot be
used after the command, logicalDecodingEnabled can be set to false, right?

Best regards,
Hayato Kuroda
FUJITSU LIMITED

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Bertrand Drouvot 2025-07-28 12:35:13 Re: Adding wait events statistics
Previous Message Nazir Bilal Yavuz 2025-07-28 12:34:06 Re: Improve error reporting in 027_stream_regress test