From: | "Zhijie Hou (Fujitsu)" <houzj(dot)fnst(at)fujitsu(dot)com> |
---|---|
To: | Dilip Kumar <dilipbalaut(at)gmail(dot)com>, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> |
Cc: | Nisha Moond <nisha(dot)moond412(at)gmail(dot)com>, Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com>, shveta malik <shveta(dot)malik(at)gmail(dot)com>, "Hayato Kuroda (Fujitsu)" <kuroda(dot)hayato(at)fujitsu(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>, vignesh C <vignesh21(at)gmail(dot)com> |
Subject: | RE: Conflict detection for update_deleted in logical replication |
Date: | 2025-08-27 03:29:12 |
Message-ID: | TY4PR01MB16907006AE4B5A4C316097E019438A@TY4PR01MB16907.jpnprd01.prod.outlook.com |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Tuesday, August 26, 2025 5:02 PM Dilip Kumar <dilipbalaut(at)gmail(dot)com> wrote:
>
> On Tue, Aug 26, 2025 at 12:15 PM Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>
> wrote:
> >
> > On Mon, Aug 25, 2025 at 5:05 PM Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>
> wrote:
> > >
>
> Some comments on latest patch
Thanks for the comments!
> 0001:
>
> 1.
> + <para>
> + Note that setting a non-zero value for this option could lead to
> + information for conflict detection being removed prematurely,
> + potentially missing some conflict detections.
> + </para>
>
> We can improve this wording by saying "potentially incorrectly detecting some
> conflict"
I slightly reworded it to "potentially resulting in incorrect conflict detection."
>
> 2.
> @@ -1175,6 +1198,8 @@ AlterSubscription(ParseState *pstate,
> AlterSubscriptionStmt *stmt,
> bool update_failover = false;
> bool update_two_phase = false;
> bool check_pub_rdt = false;
> + bool ineffective_maxconflretention = false; bool update_maxretention =
> + false;
>
> For making variable names more consistent, better to change
> 'ineffective_maxconflretention' to 'ineffective_maxretention' so that this will be
> more consistent with 'update_maxretention'
>
> 3.
> +/*
> + * Report a NOTICE to inform users that max_conflict_retention_duration
> +is
> + * ineffective when retain_dead_tuples is disabled for a subscription.
> +An ERROR
> + * is not issued because setting max_conflict_retention_duration
> causes no harm,
> + * even when it is ineffective.
> + */
> +static void
> +notify_ineffective_max_retention(bool update_maxretention) {
> +ereport(NOTICE, errcode(ERRCODE_INVALID_PARAMETER_VALUE),
> + update_maxretention
> + ? errmsg("max_conflict_retention_duration has no effect when
> retain_dead_tuples is disabled")
> + : errmsg("disabling retain_dead_tuples will render
> max_conflict_retention_duration ineffective")); }
>
> I really don't like to make a function for a single ereport, even if this is being
> called from multiple places.
I refactored this part based on some other comments, so these points
is addressed in the V66 patch set as well.
Best Regards,
Hou zj
Attachment | Content-Type | Size |
---|---|---|
v66-0003-Add-a-dead_tuple_retention_active-column-in-pg_s.patch | application/octet-stream | 8.1 KB |
v66-0001-Introduce-a-max_retention_duration-option-to-sub.patch | application/octet-stream | 101.1 KB |
v66-0002-Resume-retaining-the-information-for-conflict-de.patch | application/octet-stream | 19.2 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Zhijie Hou (Fujitsu) | 2025-08-27 03:29:51 | RE: Conflict detection for update_deleted in logical replication |
Previous Message | Chao Li | 2025-08-27 01:46:38 | Re: Fixes a trivial bug in dumped parse/query/plan trees |