From: | Dilip Kumar <dilipbalaut(at)gmail(dot)com> |
---|---|
To: | "Zhijie Hou (Fujitsu)" <houzj(dot)fnst(at)fujitsu(dot)com> |
Cc: | Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>, shveta malik <shveta(dot)malik(at)gmail(dot)com>, Masahiko Sawada <sawada(dot)mshk(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>, Nisha Moond <nisha(dot)moond412(at)gmail(dot)com> |
Subject: | Re: Conflict detection for update_deleted in logical replication |
Date: | 2025-08-12 09:52:17 |
Message-ID: | CAFiTN-uj-2GAyVKDfefKwHT_J2E+9GRkFiV7_5=8fORko-QAXw@mail.gmail.com |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Tue, Aug 12, 2025 at 3:02 PM Zhijie Hou (Fujitsu)
<houzj(dot)fnst(at)fujitsu(dot)com> wrote:
>
> On Tuesday, August 12, 2025 5:01 PM Dilip Kumar <dilipbalaut(at)gmail(dot)com> wrote:
>
> Hi,
>
> >
> > On Tue, Aug 12, 2025 at 2:21 PM Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>
> > wrote:
> > >
> > > On Tue, Aug 12, 2025 at 2:06 PM shveta malik <shveta(dot)malik(at)gmail(dot)com>
> > wrote:
> > > >
> > > > 2)
> > > > postgres=# create subscription sub2 connection 'dbname=postgres
> > > > host=localhost user=shveta port=5433' publication pub2 WITH
> > > > (retain_dead_tuples = false, max_conflict_retention_duration=1000);
> > > > NOTICE: created replication slot "sub2" on publisher CREATE
> > > > SUBSCRIPTION
> > > >
> > > > Shall we give notice that max_conflict_retention_duration is ignored
> > > > as retain_dead_tuples is false.
> > > >
> > >
> > > How about disallowing this combination?
> >
> > +1 to disallow that.
>
> I think disallowing this case may not suffice, as users could initially set
> (retain_dead_tuples=on, max_conflict_retention_duration=100) but later disable
> retain_dead_tuples. This would result in the same state as
> (retain_dead_tuples=off, max_conflict_retention_duration=100) unless we disallow
> disabling rdt in this case as well.
>
> So, do you think we should disallow both cases, or we only disallow setting
> max_conflict_retention_duration for disabled retain_dead_tuples and give NOTICE
> in another case ?
>
> I personally prefer a consistent behavior, e.g., either we allow both cases and
> give NOTICEs, or we disallow both cases. This is because, if the goal here to
> prevent potential misconfigurations by users, the scenario where a user disables
> retain_dead_tuples might also be considered a similar misconfiguration. So, I'm
> a bit concerned that the benefits of imposing a partial restriction may not
> outweigh the risk of generating inconsistent behavior. (And I did not see
> similar precedent).
I think setting 'retain_dead_tuples' to off should implicitly reset
'max_conflict_retention_duration', yeah but someone may argue if we
again set 'retain_dead_tuples' to on then we should set
'max_conflict_retention_duration' to its original value and that could
add an extra complexity.
So maybe after thinking again IMHO, we can just go with the current
behavior, like we allow max_conflict_retention_duration to be set to a
positive value without setting retain_dead_tuples and issue a NOTICE
(in both cases).
--
Regards,
Dilip Kumar
Google
From | Date | Subject | |
---|---|---|---|
Next Message | shveta malik | 2025-08-12 09:59:22 | Re: Conflict detection for update_deleted in logical replication |
Previous Message | Jelte Fennema-Nio | 2025-08-12 09:52:06 | Re: Correct documentation for protocol version |