Re: Pluggable cumulative statistics
Michael Paquier <michael@paquier.xyz>
From: Michael Paquier <michael@paquier.xyz>
To: Andres Freund <andres@anarazel.de>
Cc: Postgres hackers <pgsql-hackers@lists.postgresql.org>
Date: 2024-07-04T23:27:12Z
Lists: pgsql-hackers
On Thu, Jul 04, 2024 at 02:00:47PM -0700, Andres Freund wrote: > On 2024-06-13 16:59:50 +0900, Michael Paquier wrote: >> * Making custom stats data persistent is an interesting problem, and >> there are a couple of approaches I've considered: >> ** Allow custom kinds to define callbacks to read and write data from >> a source they'd want, like their own file through a fd. This has the >> disadvantage to remove the benefit of c) above. > > I am *strongly* against this. That'll make it much harder to do stuff like not > resetting stats after crashes and just generally will make it harder to > improve the stats facility further. > > I think that pluggable users of the stats facility should only have control > over how data is stored via quite generic means. I'm pretty much on the same line here, I think. If the redo logic is changed, then any stats kinds pushing their stats into their own file would need to copy/paste the same logic as the main file. And that's more error prone. I can get why some people would get that they don't want some stats kinds to never be flushed at shutdown or even read at startup. Adding more callbacks in this area is a separate discussion. -- Michael
Commits
-
injection_points: Add some fixed-numbered statistics
- f68cd847fa40 18.0 landed
-
injection_points: Add some cumulative stats for injection points
- 75534436a477 18.0 landed
-
Add helper routines to retrieve data for custom fixed-numbered pgstats
- 2eff9e678d35 18.0 landed
-
Introduce pluggable APIs for Cumulative Statistics
- 7949d9594582 18.0 landed
-
Switch PgStat_Kind from an enum to a uint32 type
- 3188a4582a8c 18.0 landed
-
Improve comment of pgstat_read_statsfile()
- 72c0b24b2ddd 18.0 landed
-
Add a new 'F' entry type for fixed-numbered stats in pgstats file
- 9e4664d950c1 18.0 landed
-
Add PgStat_KindInfo.init_shmem_cb
- 21471f18e9d9 18.0 landed
-
Use pgstat_kind_infos to write fixed shared statistics
- b68b29bc8fec 18.0 landed
-
Replace hardcoded identifiers of pgstats file by #defines
- 9fd02525793f 18.0 landed