summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFujii Masao <fujii@postgresql.org>2021-03-12 14:23:00 +0900
committerFujii Masao <fujii@postgresql.org>2021-03-12 14:23:00 +0900
commitb82640df0062483431608b7e9e074255f03e6c02 (patch)
treeb10af10b42c1c04f24e1da75c35aeb34fb70539c
parent33394ee6f2433d3cc7785428a77cc9a813254df7 (diff)
downloadpostgresql-b82640df0062483431608b7e9e074255f03e6c02.tar.gz
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
-rw-r--r--src/backend/postmaster/checkpointer.c13
1 files changed, 12 insertions, 1 deletions
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 */
}