Re: Conflict detection for update_deleted in logical replication - Mailing list pgsql-hackers

From Dilip Kumar
Subject Re: Conflict detection for update_deleted in logical replication
Date
Msg-id CAFiTN-uN_fFQfsEObWjWUME7t3w0csAPYU4od2nDcfZB0h+ifA@mail.gmail.com
Whole thread Raw
In response to Re: Conflict detection for update_deleted in logical replication  (Amit Kapila <amit.kapila16@gmail.com>)
Responses Re: Conflict detection for update_deleted in logical replication
List pgsql-hackers
On Thu, Jul 3, 2025 at 10:43 AM Amit Kapila <amit.kapila16@gmail.com> wrote:
>
> On Thu, Jul 3, 2025 at 10:26 AM Dilip Kumar <dilipbalaut@gmail.com> wrote:
> >
> > On Wed, Jul 2, 2025 at 12:58 PM Zhijie Hou (Fujitsu)
> > <houzj.fnst@fujitsu.com> wrote:
> > >
> >
> > > During local testing, I discovered a bug caused by my oversight in assigning
> > > the new xmin to slot.effective, which resulted in dead tuples remaining
> > > non-removable until restart. I apologize for the error and have provided
> > > corrected patches. Kindly use the latest patch set for performance testing.
> >
> > You changes related to write barrier LGTM, however I have question
> > regarding below change, IIUC, in logical replication
> > MyReplicationSlot->effective_xmin should be the xmin value which has
> > been flushed to the disk, but here we are just setting "data.xmin =
> > new_xmin;" and marking the slot dirty so I believe its not been yet
> > flushed to the disk right?
> >
>
> Yes, because this is a physical slot and we need to follow
> PhysicalConfirmReceivedLocation()/PhysicalReplicationSlotNewXmin().
> The patch has kept a comment in advance_conflict_slot_xmin() as to why
> it is okay not to flush the slot immediately.

Oh right, I forgot its physical slot.  I think we are good, thanks.


--
Regards,
Dilip Kumar
Google



pgsql-hackers by date:

Previous
From: Amit Kapila
Date:
Subject: Re: Conflict detection for update_deleted in logical replication
Next
From: shveta malik
Date:
Subject: Re: POC: enable logical decoding when wal_level = 'replica' without a server restart