Re: Conflict detection for update_deleted in logical replication

From: shveta malik <shveta(dot)malik(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>, Nisha Moond <nisha(dot)moond412(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>, Dilip Kumar <dilipbalaut(at)gmail(dot)com>, shveta malik <shveta(dot)malik(at)gmail(dot)com>
Subject: Re: Conflict detection for update_deleted in logical replication
Date: 2025-09-03 04:19:21
Message-ID: CAJpy0uC8w442wGEJ0gyR23ojAyvd-s_g-m8fUbixy0V9yOmrcg@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Tue, Sep 2, 2025 at 3:30 PM shveta malik <shveta(dot)malik(at)gmail(dot)com> wrote:
>
> >
> > >
> > > Here is V70 patch set.
> > >
> >

Please find a few comments on v70-003:

1)
Doc of dead_tuple_retention_active says:
True if retain_dead_tuples is enabled and the retention duration for
information used in conflict detection is within
max_retention_duration

Doc of subretentionactive says:
The retention status of information (e.g., dead tuples, commit
timestamps, and origins) useful for conflict detection. True if
retain_dead_tuples is enabled, and the retention duration has not
exceeded max_retention_duration, when defined.

There is hardly any difference between the two. Do we really need to
have 'dead_tuple_retention_active' when we already have
'subretentionactive'?

2)
Doc wise, there is no difference between the two, but there is a small
window when sub's subretentionactive will show true while stat's
dead_tuple_retention_active will show false. This will be when worker
is waiting for the launcher to assign its oldest-xid after it has
marked itself as 'resuming'.
If we decide to retain 'dead_tuple_retention_active', then do we need
to indicate the small difference between the 2 fields in the doc?

3)
We can add a test when we stop-retention to see if this is showing
false. Currently there are 2 places in the test where we check this
field to see if it is true. I think we can shift both in the same
test. One check before stop-retention, one check after stop-retention.

thanks
Shveta

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Alyona Vinter 2025-09-03 05:37:18 Re: Timeline switching with partial WAL records can break replica recovery
Previous Message Chao Li 2025-09-03 03:56:10 Re: SQL:2023 JSON simplified accessor support