Re: Pluggable cumulative statistics

Bertrand Drouvot <bertranddrouvot.pg@gmail.com>

From: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
To: Michael Paquier <michael@paquier.xyz>
Cc: Postgres hackers <pgsql-hackers@lists.postgresql.org>
Date: 2024-07-10T08:28:56Z
Lists: pgsql-hackers
Hi,

On Tue, Jul 09, 2024 at 03:54:37PM +0900, Michael Paquier wrote:
> On Mon, Jul 08, 2024 at 02:07:58PM +0000, Bertrand Drouvot wrote:
> > It looks pretty straightforward, just one comment:
> > 
> > +                       ptr = ((char *) ctl) + kind_info->shared_ctl_off;
> > +                       kind_info->init_shmem_cb((void *) ptr);
> > 
> > I don't think we need to cast ptr to void when calling init_shmem_cb(). Looking
> > at some examples in the code, it does not look like we cast the argument to void
> > when a function has (void *) as parameter (also there is examples in 0003 where
> > it's not done, see next comments for 0003).
> 
> Yep.  Fine by me.

Thanks!

> 
> Please find attached a rebased patch set for now, to make the
> CF bot happy.

v5-0001 LGTM.

As far v5-0002:

+                                               goto error;
+                                       info = pgstat_get_kind_info(kind);

Nit: add an empty line between the two?

Except this Nit, v5-0002 LGTM.

Regards,

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



Commits

  1. injection_points: Add some fixed-numbered statistics

  2. injection_points: Add some cumulative stats for injection points

  3. Add helper routines to retrieve data for custom fixed-numbered pgstats

  4. Introduce pluggable APIs for Cumulative Statistics

  5. Switch PgStat_Kind from an enum to a uint32 type

  6. Improve comment of pgstat_read_statsfile()

  7. Add a new 'F' entry type for fixed-numbered stats in pgstats file

  8. Add PgStat_KindInfo.init_shmem_cb

  9. Use pgstat_kind_infos to write fixed shared statistics

  10. Replace hardcoded identifiers of pgstats file by #defines