pgsql: Fix issues in pg_stat_wal. - Mailing list pgsql-committers

From Fujii Masao
Subject pgsql: Fix issues in pg_stat_wal.
Date
Msg-id E1ljC7H-0005fN-Ln@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Fix issues in pg_stat_wal.

1) Previously there were both pgstat_send_wal() and pgstat_report_wal()
   in order to send WAL activity to the stats collector. With the former being
   used by wal writer, the latter by most other processes. They were a bit
   redundant and so this commit merges them into pgstat_send_wal() to
   simplify the code.

2) Previously WAL global statistics counters were calculated and then
   compared with zero-filled buffer in order to determine whether any WAL
   activity has happened since the last submission. These calculation and
   comparison were not cheap. This was regularly exercised even in read-only
   workloads. This commit fixes the issue by making some WAL activity
   counters directly be checked to determine if there's WAL activity stats
   to send.

3) Previously pgstat_report_stat() did not check if there's WAL activity
   stats to send as part of the "Don't expend a clock check if nothing to do"
   check at the top. It's probably rare to have pending WAL stats without
   also passing one of the other conditions, but for safely this commit
   changes pgstat_report_stats() so that it checks also some WAL activity
   counters at the top.

This commit also adds the comments about the design of WAL stats.

Reported-by: Andres Freund
Author: Masahiro Ikeda
Reviewed-by: Kyotaro Horiguchi, Atsushi Torikoshi, Andres Freund, Fujii Masao
Discussion: https://postgr.es/m/20210324232224.vrfiij2rxxwqqjjb@alap3.anarazel.de

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/d8735b8b4651f5ed50afc472e236a8e6120f07f2

Modified Files
--------------
src/backend/postmaster/checkpointer.c |   4 +-
src/backend/postmaster/pgstat.c       | 121 +++++++++++++++++++---------------
src/include/executor/instrument.h     |  12 ++++
src/include/pgstat.h                  |   3 +-
4 files changed, 82 insertions(+), 58 deletions(-)


pgsql-committers by date:

Previous
From: Michael Paquier
Date:
Subject: pgsql: Add --no-toast-compression to pg_dumpall
Next
From: Bruce Momjian
Date:
Subject: pgsql: doc: partial completion of XML markup for PG 14 release notes