]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Add WALRCV_CONNECTING state to the WAL receiver
authorMichael Paquier <michael@paquier.xyz>
Fri, 23 Jan 2026 05:17:28 +0000 (14:17 +0900)
committerMichael Paquier <michael@paquier.xyz>
Fri, 23 Jan 2026 05:17:28 +0000 (14:17 +0900)
commita36164e7465fd1e10e94569e9c1c07656e38a9de
tree32e451abaf74e80ca550287cf0e8434498b1e0f5
parentf9a468c664a4605e3080383ffaa302057d56feb1
Add WALRCV_CONNECTING state to the WAL receiver

Previously, a WAL receiver freshly started would set its state to
WALRCV_STREAMING immediately at startup, before actually establishing a
replication connection.

This commit introduces a new state called WALRCV_CONNECTING, which is
the state used when the WAL receiver freshly starts, or when a restart
is requested, with a switch to WALRCV_STREAMING once the connection to
the upstream server has been established with COPY_BOTH, meaning that
the WAL receiver is ready to stream changes.  This change is useful for
monitoring purposes, especially in environments with a high latency
where a connection could take some time to be established, giving some
room between the [re]start phase and the streaming activity.

From the point of view of the startup process, that flips the shared
memory state of the WAL receiver when it needs to be stopped, the
existing WALRCV_STREAMING and the new WALRCV_CONNECTING states have the
same semantics: the WAL receiver has started and it can be stopped.

Based on an initial suggestion from Noah Misch, with some input from me
about the design.

Author: Xuneng Zhou <xunengzhou@gmail.com>
Reviewed-by: Chao Li <li.evan.chao@gmail.com>
Reviewed-by: Michael Paquier <michael@paquier.xyz>
Reviewed-by: Rahila Syed <rahilasyed90@gmail.com>
Discussion: https://postgr.es/m/CABPTF7VQ5tGOSG5TS-Cg+Fb8gLCGFzxJ_eX4qg+WZ3ZPt=FtwQ@mail.gmail.com
doc/src/sgml/monitoring.sgml
src/backend/replication/walreceiver.c
src/backend/replication/walreceiverfuncs.c
src/include/replication/walreceiver.h