Wake up backends immediately when sync standbys decrease

From: Shinya Kato <shinya11(dot)kato(at)gmail(dot)com>
To: PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Wake up backends immediately when sync standbys decrease
Date: 2026-01-30 06:59:42
Message-ID: CAOzEurSRii0tEYhu5cePmRcvS=ZrxTLEvxm3Kj0d7_uKGdM23g@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi hackers,

I have noticed an issue where backends waiting for synchronous
replication are not woken up immediately when the number of required
synchronous standbys is reduced in a multiple synchronous standby
environment.

When synchronous_standby_names is updated to require fewer standbys
(for example, changing from "FIRST 2 (s1, s2)" to "FIRST 1 (s1)"), the
backends currently waiting for replication remain blocked even after a
config reload (SIGHUP). They are only released when a new message
eventually arrives from a standby, despite the fact that the new
requirements are already satisfied.

The attached patch adds SyncRepReleaseWaiters() calls within
walsender.c immediately after the configuration is reloaded and
SyncRepInitConfig() is called. This ensures that any backends whose
waiting conditions are now met by the new configuration are released
without unnecessary delay.

Thoughts?

--
Best regards,
Shinya Kato
NTT OSS Center

Attachment Content-Type Size
v1-0001-Wake-up-backends-immediately-when-sync-standbys-d.patch application/octet-stream 2.4 KB

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Boris Mironov 2026-01-30 07:06:30 Re: Idea to enhance pgbench by more modes to generate data (multi-TXNs, UNNEST, COPY BINARY)
Previous Message Chao Li 2026-01-30 06:49:00 Re: Improve pg_sync_replication_slots() to wait for primary to advance