Hi, On 2022-11-16 16:01:55 +0530, Bharath Rupireddy wrote: > -1 for CheckpointerShmemStruct as it is being used for running > checkpoints and I don't think adding stats to it is a great idea.
Why? Imo the data needed for progress reporting aren't really "stats". We'd not accumulate counters over time, just for the current checkpoint. I think it might even be useful for other parts of the system to know what the checkpointer is doing, e.g. bgwriter or autovacuum could adapt the behaviour if checkpointer can't keep up. Somehow it'd feel wrong to use the stats system as the source of such adjustments - but perhaps my gut feeling on that isn't right. The best argument for combining progress reporting with accumulating stats is that we could likely share some of the code. Having accumulated stats for all the checkpoint phases would e.g. be quite valuable. > Instead, extending PgStat_CheckpointerStats and using shared memory > stats for reporting progress/last checkpoint related stats is a good > idea IMO There's certainly some potential for deduplicating state and to make stats updated more frequently. But that doesn't necessarily mean that putting the checkpoint progress into PgStat_CheckpointerStats is a good idea (nor the opposite). > I also think that a new pg_stat_checkpoint view is needed > because, right now, the PgStat_CheckpointerStats stats are exposed via > the pg_stat_bgwriter view, having a separate view for checkpoint stats > is good here. I agree that we should do that, but largely independent of the architectural question at hand. Greetings, Andres Freund