| From: | Michael Paquier <michael(at)paquier(dot)xyz> |
|---|---|
| To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
| Subject: | pgsql: Add backend-level lock statistics |
| Date: | 2026-06-30 08:07:25 |
| Message-ID: | E1weTV7-000ksE-2z@gemulon.postgresql.org |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-committers |
Add backend-level lock statistics
This commit adds per-backend lock statistics, providing the same
information as pg_stat_lock. It is now possible to retrieve those stats
(lock wait counts, wait times, and fast-path exceeded count) on a
per-backend basis.
This data can be retrieved with a new system function called
pg_stat_get_backend_lock(), that returns one tuple per lock type based
on the PID provided in input. Like pg_stat_get_backend_io(), this is
useful if joined with pg_stat_activity to get a live picture of the
locks behavior for each running backend.
pgstat_flush_backend() gains a new flag value, able to control the flush
of the lock stats.
This commit is straight-forward, relying on the infrastructure provided
by 9aea73fc61d4 (backend-level pgstats).
Bump catalog version. No need to touch PGSTAT_FILE_FORMAT_ID as backend
statistics are never written to disk.
Author: Bertrand Drouvot <bertranddrouvot(dot)pg(at)gmail(dot)com>
Reviewed-by: Tatsuya Kawata <kawatatatsuya0913(at)gmail(dot)com>
Reviewed-by: Michael Paquier <michael(at)paquier(dot)xyz>
Reviewed-by: Tristan Partin <tristan(at)partin(dot)io>
Reviewed-by: Rui Zhao <zhaorui126(at)gmail(dot)com>
Discussion: https://postgr.es/m/aiAzEY+cMQb/W8yu(at)bdtpg
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/8c579bdc366dbca4fe9432a01408216133628c52
Modified Files
--------------
doc/src/sgml/monitoring.sgml | 19 ++++++++
src/backend/utils/activity/pgstat_backend.c | 72 +++++++++++++++++++++++++++++
src/backend/utils/activity/pgstat_lock.c | 4 ++
src/backend/utils/adt/pgstatfuncs.c | 29 +++++++++++-
src/include/catalog/catversion.h | 2 +-
src/include/catalog/pg_proc.dat | 8 ++++
src/include/pgstat.h | 12 +++++
src/include/utils/pgstat_internal.h | 3 +-
src/test/regress/expected/stats.out | 12 +++++
src/test/regress/sql/stats.sql | 9 ++++
10 files changed, 166 insertions(+), 4 deletions(-)
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Peter Eisentraut | 2026-06-30 12:57:48 | pgsql: Fixes for SPI "const Datum *" use |
| Previous Message | Michael Paquier | 2026-06-30 07:30:19 | pgsql: Refactor pg_stat_get_lock() to use a helper function |