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: Andres Freund <andres@anarazel.de>, 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-20T13:26:55Z
Lists: pgsql-hackers

Attachments

Hi,

On Mon, Jan 20, 2025 at 09:11:16PM +0900, Michael Paquier wrote:
> On Mon, Jan 20, 2025 at 11:10:40AM +0000, Bertrand Drouvot wrote:
> > I think that it would be better to make the distinction based on "local/static"
> > vs "dynamic memory" pending stats instead: I did so in v3 attached, using:
> > 
> > .flush_dynamic_cb(): flushes pending entries tracked in dynamic memory
> > .flush_static_cb(): flushes pending stats from static/global variable
> 
> "static" and "dynamic" feel a bit off when used together.  For
> "static", the stats are from a static state but they can be pushed to
> the dshash, as well, which is in dynamic shared memory.

Right, that's another way to find it confusing ;-). But if we keep focus
on where the pending stats are stored, it is not. 

> Hmm.  Thinking more about that, I think that we should leave the
> existing "flush_pending_cb" alone.  For the two others, how about
> "have_static_pending_cb" and "flush_static_cb" rather than "fixed"?
> It seems important to me to show the relationship between these two.

Yeah, that works for me: done in v4 attached.

Regards,

-- 
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