| From: | Ajin Cherian <itsajin(at)gmail(dot)com> |
|---|---|
| To: | shveta malik <shveta(dot)malik(at)gmail(dot)com> |
| Cc: | Japin Li <japinli(at)hotmail(dot)com>, Ashutosh Bapat <ashutosh(dot)bapat(dot)oss(at)gmail(dot)com>, Ashutosh Sharma <ashu(dot)coek88(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-11-06 07:53:02 |
| Message-ID: | CAFPTHDZdsyg5CvcPZOucSO=6_yMAwzrkOi8nNGi5wT10eHxJOA@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On Tue, Nov 4, 2025 at 5:23 PM shveta malik <shveta(dot)malik(at)gmail(dot)com> wrote:
>
> >
> > I have addressed the above comments in patch v21.
> >
>
> Thank You. Please find a few comments:
>
> 1)
> + fparams.slot_names = slot_names = NIL;
>
> I think it is not needed to set slot_names to NIL.
>
> 2)
> - WAIT_EVENT_REPLICATION_SLOTSYNC_MAIN);
> + WAIT_EVENT_REPLICATION_SLOTSYNC_PRIMARY_CATCHUP);
>
> The new name does not seem appropriate. For the slotsync-worker case,
> even when the primary is not behind, the worker still waits but it is
> not waiting for primary to catch-up. I could not find a better name
> except the original one 'WAIT_EVENT_REPLICATION_SLOTSYNC_MAIN'. We can
> change the explanation to :
>
> "Waiting in main loop of slot sync worker and slot sync API."
> Or
> "Waiting in main loop of slot synchronization."
>
> If anyone has any better name suggestions, we can consider changing.
Changed as suggested above.
>
> 3)
>
> +# Attempt to synchronize slots using API. The API will continue retrying
> +# synchronization until the remote slot catches up with the locally reserved
> +# position. The API will not return until this happens, to be able to make
> +# further calls, call the API in a background process.
>
> Shall we remove 'with the locally reserved position', it’s already
> explained in the test header and the comment is good enough even
> without it.
>
Changed.
> 4)
> +# Confirm log that the slot has been synced after becoming sync-ready.
>
> Shall we just say:
> Confirm from the log that the slot is sync-ready now.
>
> 5)
> # Synchronize the primary server slots to the standby.
> $standby1->safe_psql('postgres', "SELECT pg_sync_replication_slots();");
> @@ -945,6 +1007,7 @@ $subscriber1->safe_psql('postgres',
> is( $standby1->safe_psql(
> 'postgres',
> q{SELECT count(*) = 2 FROM pg_replication_slots WHERE slot_name IN
> ('lsub1_slot', 'snap_test_slot') AND synced AND NOT temporary;}
> +
> ),
>
> Redundant change.
Removed.
Attaching patch v22 addressing the above comments.
regards,
Ajin Cherian
Fujitsu Australia
| Attachment | Content-Type | Size |
|---|---|---|
| v22-0001-Improve-initial-slot-synchronization-in-pg_sync_.patch | application/octet-stream | 26.3 KB |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Michael Paquier | 2025-11-06 08:26:58 | Re: Extended Statistics set/restore/clear functions. |
| Previous Message | Mats Kindahl | 2025-11-06 07:37:58 | Re: Use stack-allocated StringInfoData |