RE: Exit walsender before confirming remote flush in logical replication
Hayato Kuroda (Fujitsu) <kuroda.hayato@fujitsu.com>
From: "Hayato Kuroda (Fujitsu)" <kuroda.hayato@fujitsu.com>
To: "Hayato Kuroda (Fujitsu)" <kuroda.hayato@fujitsu.com>, 'Andres Freund' <andres@anarazel.de>, Amit Kapila <amit.kapila16@gmail.com>
Cc: Masahiko Sawada <sawada.mshk@gmail.com>, Michael Paquier <michael@paquier.xyz>, Peter Eisentraut <peter.eisentraut@enterprisedb.com>, Kyotaro Horiguchi <horikyota.ntt@gmail.com>, "dilipbalaut@gmail.com" <dilipbalaut@gmail.com>, "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2023-02-07T16:07:07Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Add wal_sender_shutdown_timeout GUC to limit shutdown wait for replication
- a8f45dee9176 19 (unreleased) landed
-
pg_upgrade: Add --copy option
- 746915c68669 16.0 cited
-
Prevent possibility of panics during shutdown checkpoint.
- c6c333436491 10.0 cited
-
Support clean switchover.
- 985bd7d49726 9.4.0 cited
Attachments
- v2-0001-Time-delayed-logical-replication-subscriber.patch (application/octet-stream) patch v2-0001
- v2-0002-Extend-START_REPLICATION-command-to-accept-walsen.patch (application/octet-stream) patch v2-0002
> Dear Andres, Amit, > > > On 2023-02-07 09:00:13 +0530, Amit Kapila wrote: > > > On Tue, Feb 7, 2023 at 2:04 AM Andres Freund <andres@anarazel.de> wrote: > > > > How about we make it an option in START_REPLICATION? Delayed logical > > rep can > > > > toggle that on by default. > > > > > Works for me. So, when this option is set in START_REPLICATION > > > message, walsender will set some flag and allow itself to exit at > > > shutdown without waiting for WAL to be sent? > > > > Yes. I think that might be useful in other situations as well, but we don't > > need to make those configurable initially. But I imagine it'd be useful to set > > things up so that non-HA physical replicas don't delay shutdown, particularly > > if they're geographically far away. > > Based on the discussion, I made a patch for adding a walsender option > exit_before_confirming to the START_STREAMING replication command. It can > be > used for both physical and logical replication. I made the patch with > extendibility - it allows adding further options. > And better naming are very welcome. > > For physical replication, the grammar was slightly changed like a logical one. > It can now accept options but currently, only one option is allowed. And it is > not used in normal streaming replication. For logical replication, the option is > combined with options for the output plugin. Of course, we can modify the API to > better style. > > 0001 patch was ported from time-delayed logical replication thread[1], which > uses > the added option. When the min_apply_delay option is specified and publisher > seems > to be PG16 or later, the apply worker sends a START_REPLICATION query with > exit_before_confirming = true. And the worker will reboot and send > START_REPLICATION > again when min_apply_delay is changed from zero to a non-zero value or non-zero > to zero. > > Note that I removed version number because the approach is completely changed. > > [1]: > https://www.postgresql.org/message-id/TYCPR01MB8373BA483A6D2C924C60 > 0968EDDB9@TYCPR01MB8373.jpnprd01.prod.outlook.com I noticed that previous ones are rejected by cfbot, even if they passed on my environment... PSA fixed version. Best Regards, Hayato Kuroda FUJITSU LIMITED