Re: Improve pg_sync_replication_slots() to wait for primary to advance

From: Ajin Cherian <itsajin(at)gmail(dot)com>
To: shveta malik <shveta(dot)malik(at)gmail(dot)com>
Cc: Ashutosh Bapat <ashutosh(dot)bapat(dot)oss(at)gmail(dot)com>, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>, PostgreSQL mailing lists <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Improve pg_sync_replication_slots() to wait for primary to advance
Date: 2025-08-14 01:58:26
Message-ID: CAFPTHDbFrsK9eqYowitgWisROXgYEAH7SZ6fHD0FZ19-8Hc54g@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Wed, Aug 13, 2025 at 2:47 PM shveta malik <shveta(dot)malik(at)gmail(dot)com> wrote:
>
> On Mon, Aug 11, 2025 at 1:37 PM Ajin Cherian <itsajin(at)gmail(dot)com> wrote:
> >
> > On Fri, Aug 8, 2025 at 11:22 PM Ashutosh Bapat
> > <ashutosh(dot)bapat(dot)oss(at)gmail(dot)com> wrote:
> > >
> > >
> > > There's also a minor merge conflict because func.sgml is not split
> > > into multiple files.
> > >
> >
> > Yes, I fixed this.
> >
>
> Thanks for the patch. Please find a few comments:
>
> 1)
> We can merge refresh_remote_slots and fetch_remote_slots by passing an
> argument of remote_list. If no remote_list passed, fetch all failover
> slots, else extend the query and fetch only the listed ones.
>

Done.

> 2)
> We can get rid of 'sync_iterations' and the logic within, as I think
> there is no need to distinguish between slotsync and API in terms of
> logs.
>

Done.

> 3)
> sync_start_pending is not needed to be passed to
> update_and_persist_local_synced_slot(), as the output of this function
> is good enough to tell whether slot is persisted or not.
>
> 4)
> Also how about having sync-pending in SlotSyncCtxStruct. It can be set
> unconditionally by both slotsync and API, but will be used by API. I
> think it can simplify the code.
>

Done.

> 5)
> We can get rid of 'pending_sync_start_slots', as it is not being used anywhere.
>

Fixed.

> 6)
> Also we can mention in comments as to why we are using the old
> remote_slots list in refresh_remote_slots() during subsequent cycles
> of API rather than using only the pending-slot list.

Done.

Patch v6 attached.

regards,
Ajin Cherian
Fujitsu Australia

Attachment Content-Type Size
v6-0001-Improve-initial-slot-synchronization-in-pg_sync_r.patch application/octet-stream 24.4 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Smith 2025-08-14 02:04:12 Re: [WIP]Vertical Clustered Index (columnar store extension) - take2
Previous Message Peter Geoghegan 2025-08-14 01:51:43 Re: index prefetching