| 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 |
| 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 |