Thread: Re: Add callback in pgstats for backend initialization

Re: Add callback in pgstats for backend initialization

From
Bertrand Drouvot
Date:
Hi,

On Tue, Sep 03, 2024 at 10:52:20AM +0900, Michael Paquier wrote:
> Hi all,
> 
> Currently, the backend-level initialization of pgstats happens in
> pgstat_initialize(), where we are using a shortcut for the WAL stats,
> with pgstat_init_wal().
> 
> I'd like to propose to add a callback for that, so as in-core or
> custom pgstats kinds can assign custom actions when initializing a
> backend.  The use-case I had for this one are pretty close to what we
> do for WAL, where we would rely on a difference of state depending on
> what may have existed before reaching the initialization path.  So
> this can offer more precision.  Another case, perhaps less
> interesting, is to be able to initialize some static backend state.

I think the proposal makes sense and I can see the use cases too, so +1.

> This gives the simple patch
> attached.

Should we add a few words about this new callback (and the others in
PgStat_KindInfo while at it) in the "Custom Cumulative Statistics" section of
xfunc.sgml?

Regards,

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



Re: Add callback in pgstats for backend initialization

From
Kyotaro Horiguchi
Date:
At Tue, 3 Sep 2024 05:00:54 +0000, Bertrand Drouvot <bertranddrouvot.pg@gmail.com> wrote in 
> Hi,
> 
> On Tue, Sep 03, 2024 at 10:52:20AM +0900, Michael Paquier wrote:
> > Hi all,
> > 
> > Currently, the backend-level initialization of pgstats happens in
> > pgstat_initialize(), where we are using a shortcut for the WAL stats,
> > with pgstat_init_wal().
> > 
> > I'd like to propose to add a callback for that, so as in-core or
> > custom pgstats kinds can assign custom actions when initializing a
> > backend.  The use-case I had for this one are pretty close to what we
> > do for WAL, where we would rely on a difference of state depending on
> > what may have existed before reaching the initialization path.  So
> > this can offer more precision.  Another case, perhaps less
> > interesting, is to be able to initialize some static backend state.
> 
> I think the proposal makes sense and I can see the use cases too, so +1.

+1, too.

The name "init_backend" makes it sound like the function initializes
the backend. backend_init might be a better choice, but I'm not sure.

regards.

-- 
Kyotaro Horiguchi
NTT Open Source Software Center