From b82640df0062483431608b7e9e074255f03e6c02 Mon Sep 17 00:00:00 2001 From: Fujii Masao Date: Fri, 12 Mar 2021 14:23:00 +0900 Subject: [PATCH] Send statistics collected during shutdown checkpoint to the stats collector. When shutdown is requested, checkpointer performs checkpoint or restartpoint, and updates the statistics, before it exits. But previously checkpointer didn't send those statistics to the stats collector. Shutdown checkpoint and restartpoint are treated as requested ones instead of scheduled ones, so the number of them are counted in pg_stat_bgwriter.checkpoints_req column. Author: Masahiro Ikeda Reviewed-by: Fujii Masao Discussion: https://postgr.es/m/0509ad67b585a5b86a83d445dfa75392@oss.nttdata.com --- src/backend/postmaster/checkpointer.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/backend/postmaster/checkpointer.c b/src/backend/postmaster/checkpointer.c index 57c4d5a5d9..5907a7befc 100644 --- a/src/backend/postmaster/checkpointer.c +++ b/src/backend/postmaster/checkpointer.c @@ -572,8 +572,19 @@ HandleCheckpointerInterrupts(void) * back to the sigsetjmp block above */ ExitOnAnyError = true; - /* Close down the database */ + + /* + * Close down the database. + * + * Since ShutdownXLOG() creates restartpoint or checkpoint, and + * updates the statistics, increment the checkpoint request and send + * the statistics to the stats collector. + */ + BgWriterStats.m_requested_checkpoints++; ShutdownXLOG(0, 0); + pgstat_send_bgwriter(); + pgstat_report_wal(); + /* Normal exit from the checkpointer is here */ proc_exit(0); /* done */ }