Re: Improve pg_sync_replication_slots() to wait for primary to advance
Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>
From: Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>
To: shveta malik <shveta.malik@gmail.com>
Cc: Ajin Cherian <itsajin@gmail.com>, Amit Kapila <amit.kapila16@gmail.com>, PostgreSQL mailing lists <pgsql-hackers@postgresql.org>
Date: 2025-08-29T10:44:14Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Enhance slot synchronization API to respect promotion signal.
- 4bed04d39566 17.10 landed
- 94efd308bcec 18.4 landed
- 1362bc33e025 19 (unreleased) landed
-
Fix inconsistent elevel in pg_sync_replication_slots() retry logic.
- f1ddaa15357f 19 (unreleased) landed
-
Refactor slot synchronization logic in slotsync.c.
- 788ec96d591d 19 (unreleased) landed
-
Fix intermittent BF failure in 040_standby_failover_slots_sync.
- b47c50e5667b 19 (unreleased) landed
-
Add retry logic to pg_sync_replication_slots().
- 0d2d4a0ec3ec 19 (unreleased) landed
-
Fix LOCK_TIMEOUT handling in slotsync worker.
- 04396eacd3fa 19 (unreleased) cited
-
Add slotsync skip statistics.
- 76b78721ca49 19 (unreleased) cited
On Fri, Aug 29, 2025 at 2:37 PM shveta malik <shveta.malik@gmail.com> wrote: > > On Fri, Aug 29, 2025 at 2:20 PM Ashutosh Bapat > <ashutosh.bapat.oss@gmail.com> wrote: > > > > @@ -1276,7 +1331,7 @@ wait_for_slot_activity(bool some_slot_updated) > > > > The function is too cute to be useful. The code should be part of > > ReplSlotSyncWorkerMain() just like other worker's main functions. > > > > I was thinking we can retain wait_for_slot_activity() as this can even > be invoked from API flow. See my comment# 2 in [1] We want the SQL callable function to finish as fast as possible, and make all the slots sync ready as fast as possible. So a shorter nap time makes sense. We don't want to increase it per iteration. But sync worker is a long running worker and can afford to wait longer. In fact it should wait longer so as not to load the primary and the standby. Given that the naptimes in both cases can not be controlled by the same logic, I think it's better not to use the same function. Each of them should have separate code for napping. That way the logic which decides the nap time is closer to the code that naps making it more readable. -- Best Wishes, Ashutosh Bapat