pgsql: Avoid sending duplicate WAL locations in standby status replies - Mailing list pgsql-committers

From Fujii Masao
Subject pgsql: Avoid sending duplicate WAL locations in standby status replies
Date
Msg-id E1w5jJ4-001XJZ-20@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Avoid sending duplicate WAL locations in standby status replies

Previously, when the startup process applied WAL and requested walreceiver
to send an apply notification to the primary, walreceiver sent a status reply
unconditionally, even if the WAL locations had not advanced since
the previous update.

As a result, the standby could send two consecutive status reply messages
with identical WAL locations even though wal_receiver_status_interval had
not yet elapsed. This could unexpectedly reset the reported replication lag,
making it difficult for users to monitor lag. The second message was also
unnecessary because it reported no progress.

This commit updates walreceiver to send a reply only when the apply location
has advanced since the last status update, even when the startup process
requests a notification.

Author: Fujii Masao <masao.fujii@gmail.com>
Reviewed-by: Shinya Kato <shinya11.kato@gmail.com>
Reviewed-by: Chao Li <li.evan.chao@gmail.com>
Discussion: https://postgr.es/m/CAOzEurTzcUrEzrH97DD7+Yz=HGPU81kzWQonKZvqBwYhx2G9_A@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/400a790a48eb7a1e76f23f9f6d8a6f7159395f65

Modified Files
--------------
src/backend/access/transam/xlogrecovery.c |  4 +-
src/backend/replication/walreceiver.c     | 74 ++++++++++++++++++-------------
src/include/replication/walreceiver.h     |  6 +--
3 files changed, 49 insertions(+), 35 deletions(-)


pgsql-committers by date:

Previous
From: Fujii Masao
Date:
Subject: pgsql: Fix premature NULL lag reporting in pg_stat_replication
Next
From: Peter Eisentraut
Date:
Subject: pgsql: Fix -Wcast-qual warning