Re: Adding locks statistics
Michael Paquier <michael@paquier.xyz>
From: Michael Paquier <michael@paquier.xyz>
To: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
Cc: Tomas Vondra <tomas@vondra.me>, Andres Freund <andres@anarazel.de>, Jeff Davis <pgsql@j-davis.com>, Greg Sabino Mullane <htamfids@gmail.com>, pgsql-hackers@lists.postgresql.org
Date: 2026-04-06T05:11:21Z
Lists: pgsql-hackers
On Tue, Mar 31, 2026 at 07:10:51AM +0000, Bertrand Drouvot wrote: > On Mon, Mar 30, 2026 at 06:11:17PM +0200, Tomas Vondra wrote: >> Isn't pgstat_lock_flush_cb a bit broken with nowait=true? It'll skip >> flushing stats for that particular lock type, but then it'll happily >> reset the pending stats anyway, forgetting the stats. >> >> AFAIK it should keep the pending stats, and flush them sometime lager, >> when the lock is not contended. That's what the other flush callbacks >> do, at least. This probably means it needs to reset the entries one by >> one, not the whole struct at once. > > Oh right, it's currently misbehaving, thanks for the warning! Not misbehaving, mistaken. This would create loss of stats data that should have been flushed. I should not have missed that, sorry about that. A single-lock approach is also something we do for SLRU and WAL data, and these are much hotter. At the exception of one comment that could be simplified, the code removed is correct, so addressed this one as well. -- Michael
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Fix injection point detach timing problem in TAP test for lock stats
- 3284e3f63cf0 19 (unreleased) landed
-
Use single LWLock for lock statistics in pgstats
- 404a17c155ac 19 (unreleased) landed
-
Add tests for lock statistics, take two
- 557a9f1e3e62 19 (unreleased) landed
-
Remove isolation test lock-stats
- 7c64d56fd976 19 (unreleased) landed
-
Avoid including clog.h in proc.h
- f227b7b20c36 19 (unreleased) landed
-
Don't include storage/lock.h in so many headers
- 2102ebb1953f 19 (unreleased) landed
-
Add support for lock statistics in pgstats
- 4019f725f5d4 19 (unreleased) landed
-
Move some code blocks in lock.c and proc.c
- a90d86518243 19 (unreleased) landed
-
Move declarations related to locktags from lock.h to new locktag.h
- 322bab79744d 19 (unreleased) landed