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
This commit is contained in:
Fujii Masao 2021-03-12 14:23:00 +09:00
parent 33394ee6f2
commit b82640df00
1 changed files with 12 additions and 1 deletions

View File

@ -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 */
}