RE: Conflict detection for update_deleted in logical replication
Zhijie Hou (Fujitsu) <houzj.fnst@fujitsu.com>
Attachments
- v44-0005-Allow-altering-retain_conflict_info-for-enabled-.patch (application/octet-stream) patch v44-0005
- v44-0001-Preserve-conflict-relevant-data-during-logical-r.patch (application/octet-stream) patch v44-0001
- v44-0002-Introduce-a-new-GUC-max_conflict_retention_durat.patch (application/octet-stream) patch v44-0002
- v44-0003-Re-create-the-replication-slot-if-the-conflict-r.patch (application/octet-stream) patch v44-0003
- v44-0004-Support-the-conflict-detection-for-update_delete.patch (application/octet-stream) patch v44-0004
On Mon, Jun 30, 2025 at 7:22 PM Amit Kapila wrote: > > On Fri, Jun 27, 2025 at 7:58 AM Zhijie Hou (Fujitsu) <houzj.fnst@fujitsu.com> > wrote: > > > > Here is the V43 patch set which includes the following changes: > > > > Few minor comments: > 1. > @@ -29645,8 +29651,10 @@ postgres=# SELECT '0/0'::pg_lsn + > pd.segment_number * ps.setting::int + :offset > Copies an existing logical replication slot > named <parameter>src_slot_name</parameter> to a logical > replication > slot named <parameter>dst_slot_name</parameter>, optionally > changing > - the output plugin and persistence. The copied logical slot starts > - from the same <acronym>LSN</acronym> as the source logical slot. > Both > + the output plugin and persistence. The name cannot be > + <literal>pg_conflict_detection</literal> as it is reserved for > + the conflict detection. The copied logical slot starts from the same > + <acronym>LSN</acronym> as the source logical slot. Both > > /The name/The new slot name > > 2. The server version checks can be modified to 19000 as a new branch is > created now. > > 3. > This ensures that if the launcher loses track of the slot after > + * a restart, it will remember to drop the slot when it is no longer > + * requested by any subscription. > > The link between the first part of the sentence before the comma is not clear > with the remaining part of the sentence. How about writing it as: "Acquire the > conflict detection slot at startup to ensure it can be dropped if no longer needed > after a restart."? Thanks for the comments. I have addressed above in V44 patch set. Only 0001 is modified in this version. Best Regards, Hou zj
Commits
-
Fix intermittent BF failures in 035_conflicts.
- 0f42206531b3 19 (unreleased) landed
-
Resume conflict-relevant data retention automatically.
- 0d48d393d465 19 (unreleased) landed
-
Fix intermittent test failure introduced in 6456c6e2c4.
- 01d793698f59 19 (unreleased) landed
-
Fix Coverity issue reported in commit a850be2fe.
- 5ac3c1ac22cb 19 (unreleased) landed
-
Add test to prevent premature removal of conflict-relevant data.
- 6456c6e2c4ad 19 (unreleased) landed
-
Post-commit review fixes for 228c370868.
- 1f7e9ba3ac4e 19 (unreleased) landed
-
Add max_retention_duration option to subscriptions.
- a850be2fe653 19 (unreleased) landed
-
Detect and report update_deleted conflicts.
- fd5a1a0c3e56 19 (unreleased) landed
-
Preserve conflict-relevant data during logical replication.
- 228c37086855 19 (unreleased) landed
-
Integrate FullTransactionIds deeper into two-phase code
- 62a17a92833d 19 (unreleased) cited
-
Improve checks for GUC recovery_target_timeline
- fd7d7b719137 19 (unreleased) cited
-
Prevent excessive delays before launching new logrep workers.
- fd519419c948 18.0 cited
-
Keep WAL segments by slot's last saved restart LSN
- ca307d5cec90 18.0 cited
-
Rework some code handling pg_subscription data in psql and pg_dump
- 08691ea958c2 18.0 cited
-
Use generateClonedIndexStmt to propagate CREATE INDEX to partitions.
- 68dfecbef210 18.0 cited