Re: per backend I/O statistics

Bertrand Drouvot <bertranddrouvot.pg@gmail.com>

From: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
To: Michael Paquier <michael@paquier.xyz>
Cc: Nazir Bilal Yavuz <byavuz81@gmail.com>, Alvaro Herrera <alvherre@alvh.no-ip.org>, Kyotaro Horiguchi <horikyota.ntt@gmail.com>, pgsql-hackers@lists.postgresql.org
Date: 2025-01-10T13:56:01Z
Lists: pgsql-hackers
Hi,

On Thu, Dec 19, 2024 at 06:12:04AM +0000, Bertrand Drouvot wrote:
> I think I'll start a dedicated thread to discuss the stats_fetch_consistency/'snapshot'
> point (will be easier to follow than resuming the discussion in this thread).

I gave more thoughts on it and did some research in the mailing list.

I've read those comments, from [1]:

"
We had a lot of discussion around what consistency
model we want, and Tom was
adamant that there needs to be a mode that behaves
like the current consistency
model (which is what snapshot behaves like, with
very minor differences)
"

and from [2]:

"
One thing we definitely need to add documentation for is the
stats_fetch_consistency GUC. I think we should change its default to 'cache',
because that still gives the ability to "self-join", without the cost of the
current method.
"

So now, I think that it is not a good idea for the per backend stats to 
behave differently than the other stats kinds. I think we should get rid of
the "snapshot" for all of them or for none of them. Reading the above comments,
it looks like it has already been discussed and that the outcome is to keep
it for all of them.

Regards,

[1]: https://www.postgresql.org/message-id/20220404210610.6dgbwzpbiveyl5y3%40alap3.anarazel.de
[2]: https://www.postgresql.org/message-id/20220329072651.imjqtzxwk6xycojv%40alap3.anarazel.de

-- 
Bertrand Drouvot
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com



Commits

  1. Rework handling of pending data for backend statistics

  2. Rename some pgstats callbacks related to flush of entries

  3. Relax regression test for fsync check of backend-level stats

  4. Add backend-level statistics to pgstats

  5. Extract logic filling pg_stat_get_io()'s tuplestore into its own routine

  6. Tweak some comments related to variable-numbered stats in pgstat.c