Re: [Proposal] Add accumulated statistics for wait event - Mailing list pgsql-hackers

From Jehan-Guillaume de Rorthais
Subject Re: [Proposal] Add accumulated statistics for wait event
Date
Msg-id 20210614232047.2b2fdd8b@firost
Whole thread Raw
In response to Re: [Proposal] Add accumulated statistics for wait event  (Andres Freund <andres@anarazel.de>)
Responses Re: [Proposal] Add accumulated statistics for wait event
List pgsql-hackers
Hi,

On Mon, 14 Jun 2021 11:27:21 -0700
Andres Freund <andres@anarazel.de> wrote:

> On 2021-06-14 16:10:32 +0200, Jehan-Guillaume de Rorthais wrote:
> > In the patch in attachment, I tried to fix this by using kind of an internal
> > hook for pgstat_report_wait_start and pgstat_report_wait_end. This allows to
> > "instrument" wait events only when required, on the fly, dynamically.  
> 
> That's *far worse*. You're adding an indirect function call. Which requires
> loading a global variable and then a far call to a different function. You're
> changing a path that's ~2 instructions with minimal dependencies (and no
> branches (i.e. fully out of order executable) to something on the order of ~15
> instructions with plenty dependencies and at least two branches (call, ret).

Oh, I didn't realized it would affect all queries, even when log_statement_stats
was off. Thank you for your explanation.

> I doubt there's a path towards this feature without adding the necessary
> infrastructure to hot-patch the code - which is obviously quite a
> substantial project.

Right. Sadly, this kind of project is far above what I can do. So I suppose
it's a dead end for me.

I'll study if/how the sampling approach can be done dynamically.

Thank you,



pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: a path towards replacing GEQO with something better
Next
From: Jeff Davis
Date:
Subject: Re: Question about StartLogicalReplication() error path