Re: [Proposal] Add accumulated statistics for wait event
Jehan-Guillaume de Rorthais <jgdr@dalibo.com>
From: Jehan-Guillaume de Rorthais <jgdr@dalibo.com>
To: Andres Freund <andres@anarazel.de>
Cc: Daniel Gustafsson <daniel@yesql.se>, imai.yoshikazu@fujitsu.com, Kyotaro
Horiguchi <horikyota.ntt@gmail.com>, "pgsql-hackers@lists.postgresql.org"
<pgsql-hackers@lists.postgresql.org>, "yoshikazu_i443@live.jp"
<yoshikazu_i443@live.jp>
Date: 2021-06-14T21:20:47Z
Lists: 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,