Re: Adding locks statistics

Bertrand Drouvot <bertranddrouvot.pg@gmail.com>

From: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
To: Michael Paquier <michael@paquier.xyz>
Cc: Andres Freund <andres@anarazel.de>, Jeff Davis <pgsql@j-davis.com>, Greg Sabino Mullane <htamfids@gmail.com>, pgsql-hackers@lists.postgresql.org
Date: 2026-03-26T04:05:40Z
Lists: pgsql-hackers

Attachments

Hi,

On Thu, Mar 26, 2026 at 08:06:20AM +0900, Michael Paquier wrote:
> 
> I like the patch, but I happen to not like my initial idea of relying
> on a NOTICE in an injection point combined with your new API in
> BackgroundPsql because we can already achieve the same with a wait
> injection point and use BackgroundPsql::query_until() with an \echo to
> detect that the command is blocked.

Yeah that works too.

> The updated version attached uses this method (edited quickly your
> commit message).  Like your patch there is no need for hardcoded
> sleeps and the CI's first impressions are actually good,

Same here.

> but I am
> going to need more runs to gain more confidence.  Note I should be
> able to do something here in 10 days or so.  If you could confirm the
> stability on your side for the time being with more runs, that would
> help, of course.

With wait + echo we don't need s2 to "on_error_stop => 0" anymore. I changed
that in the attached. I'll run more CI tests during those 10 days. Let's sync
up when you'll be about to push it.

Regards,

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

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Fix injection point detach timing problem in TAP test for lock stats

  2. Use single LWLock for lock statistics in pgstats

  3. Add tests for lock statistics, take two

  4. Remove isolation test lock-stats

  5. Avoid including clog.h in proc.h

  6. Don't include storage/lock.h in so many headers

  7. Add support for lock statistics in pgstats

  8. Move some code blocks in lock.c and proc.c

  9. Move declarations related to locktags from lock.h to new locktag.h