Re: Inconsistency in reporting checkpointer stats - Mailing list pgsql-hackers

From Michael Paquier
Subject Re: Inconsistency in reporting checkpointer stats
Date
Msg-id Y5pEHOtpXD/iuU1c@paquier.xyz
Whole thread Raw
In response to Re: Inconsistency in reporting checkpointer stats  (Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>)
Responses Re: Inconsistency in reporting checkpointer stats  (Nitin Jadhav <nitinjadhavpostgres@gmail.com>)
List pgsql-hackers
On Wed, Dec 14, 2022 at 04:54:53PM +0530, Bharath Rupireddy wrote:
> Indeed PendingCheckpointerStats.buf_written_checkpoints needs to count
> buffer writes in SlruInternalWritePage(). However, does it need to be
> done immediately there? The stats will not be visible to the users
> until the next pgstat_report_checkpointer(). Incrementing
> buf_written_checkpoints in BufferSync() makes sense as the
> pgstat_report_checkpointer() gets called in there via
> CheckpointWriteDelay() and it becomes visible to the user immediately.
> Have you checked if pgstat_report_checkpointer() gets called while the
> checkpoint calls SlruInternalWritePage()? If not, then you can just
> assign ckpt_bufs_written to buf_written_checkpoints in
> LogCheckpointEnd() like its other friends
> checkpoint_write_time and checkpoint_sync_time.

    /* If part of a checkpoint, count this as a buffer written. */
    if (fdata)
        CheckpointStats.ckpt_bufs_written++;
+       PendingCheckpointerStats.buf_written_checkpoints++;
Also, the proposed patch would touch PendingCheckpointerStats even
when there is no fdata, aka outside the context of a checkpoint or
shutdown sequence..
--
Michael

Attachment

pgsql-hackers by date:

Previous
From: Andrew Dunstan
Date:
Subject: Re: Error-safe user functions
Next
From: Pavel Luzanov
Date:
Subject: Re: allow granting CLUSTER, REFRESH MATERIALIZED VIEW, and REINDEX