Re: Stack-based tracking of per-node WAL/buffer usage
Zsolt Parragi <zsolt.parragi@percona.com>
From: Zsolt Parragi <zsolt.parragi@percona.com>
To: Heikki Linnakangas <hlinnaka@iki.fi>
Cc: Lukas Fittl <lukas@fittl.com>, Tomas Vondra <tomas@vondra.me>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>,
Andres Freund <andres@anarazel.de>, Peter Smith <smithpb2250@gmail.com>
Date: 2026-03-23T19:07:02Z
Lists: pgsql-hackers
> I'm looking at this finalize at resowner part of this patch, and this > maybe a stupid question, but: > > Why does the instrumentation need to be "finalized" on abort? If you run > EXPLAIN ANALYZE and the query aborts, you don't get to see the stats anyway. The pg_session_buffer_usage in 0009 makes the information available, I was able to see the issue with failing triggers with that. Even if that part doesn't get committed in the end, a 3rd party extension could still implement the same thing, and notice the missing statistics. (And maybe it is useful to see some statistics about failing queries?)
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
instrumentation: Allocate query level instrumentation in ExecutorStart
- 2c16deee2f7d 19 (unreleased) landed
-
instrumentation: Move ExecProcNodeInstr to allow inlining
- 544000288ec8 19 (unreleased) landed
-
instrumentation: Separate per-node logic from other uses
- 5a79e78501f4 19 (unreleased) landed
-
instrumentation: Separate trigger logic from other uses
- 7d9b74df53e9 19 (unreleased) landed
-
instrumentation: Rename INSTR_TIME_LT macro to INSTR_TIME_GT
- 3218825271bd 19 (unreleased) landed
-
instrumentation: Keep time fields as instrtime, convert in callers
- e5a5e0a90750 19 (unreleased) landed