Re: Conflict detection for update_deleted in logical replication

Nisha Moond <nisha.moond412@gmail.com>

From: Nisha Moond <nisha.moond412@gmail.com>
To: "Zhijie Hou (Fujitsu)" <houzj.fnst@fujitsu.com>
Cc: Dilip Kumar <dilipbalaut@gmail.com>, Amit Kapila <amit.kapila16@gmail.com>, shveta malik <shveta.malik@gmail.com>, Masahiko Sawada <sawada.mshk@gmail.com>, "Hayato Kuroda (Fujitsu)" <kuroda.hayato@fujitsu.com>, pgsql-hackers <pgsql-hackers@postgresql.org>, vignesh C <vignesh21@gmail.com>
Date: 2025-08-13T04:27:24Z
Lists: pgsql-hackers
On Mon, Aug 11, 2025 at 2:40 PM Zhijie Hou (Fujitsu)
<houzj.fnst@fujitsu.com> wrote:
>
> I agree. So, following the above points and some off-list discussions, I have
> revised the option to be a subscription option in the V60 version.
>

Thanks Hou-san for the patches.
I have tested the patches and are working as expected. I've a minor
comment for patch v60-0001.

@@ -4642,6 +4791,10 @@
adjust_xid_advance_interval(RetainDeadTuplesData *rdt_data, bool
new_xid_found)
  */
  rdt_data->xid_advance_interval = Min(rdt_data->xid_advance_interval * 2,
  max_interval);
+
+ /* Ensure the wait time remains within the maximum limit */
+ rdt_data->xid_advance_interval = Min(rdt_data->xid_advance_interval,
+

The function comment needs an update as per above change. Currently, it says -
 * The interval is reset to a minimum value of 100ms once there is some
 * activity on the node.

But if MySubscription->maxconflretention is < 100ms, then it will be
set to maxconflretention value and not 100ms.

--
Thanks,
Nisha