Force to send remaining WAL stats to the stats collector at walwriter exit.
authorFujii Masao <fujii@postgresql.org>
Fri, 12 Mar 2021 04:29:59 +0000 (13:29 +0900)
committerFujii Masao <fujii@postgresql.org>
Fri, 12 Mar 2021 04:29:59 +0000 (13:29 +0900)
commit33394ee6f2433d3cc7785428a77cc9a813254df7
tree8dd329528ee7b02df2bf8bae58d7c00f3ceb32e6
parent43c66624964aa1d2f519ad6be0c5ea8f170cf357
Force to send remaining WAL stats to the stats collector at walwriter exit.

In walwriter's main loop, WAL stats message is only sent if enough time
has passed since last one was sent to reach PGSTAT_STAT_INTERVAL msecs.
This is necessary to avoid overloading to the stats collector. But this
can cause recent WAL stats to be unsent when walwriter exits.

To ensure that all the WAL stats are sent, this commit makes walwriter
force to send remaining WAL stats to the collector when it exits because
of shutdown request. Note that those remaining WAL stats can still be
unsent when walwriter exits with non-zero exit code (e.g., FATAL error).
This is OK because that walwriter exit leads to server crash and
subsequent recovery discards all the stats. So there is no need to send
remaining stats in that case.

Author: Masahiro Ikeda
Reviewed-by: Fujii Masao
Discussion: https://postgr.es/m/0509ad67b585a5b86a83d445dfa75392@oss.nttdata.com
src/backend/postmaster/walwriter.c