pgsql: Report per-index vacuum progress in pg_stat_progress_vacuum

From: Michael Paquier <michael(at)paquier(dot)xyz>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Report per-index vacuum progress in pg_stat_progress_vacuum
Date: 2026-10-01 22:31:05
Message-ID: E1xCPIv-000000023Lx-1nWV@gemulon.postgresql.org
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Report per-index vacuum progress in pg_stat_progress_vacuum

pg_stat_progress_vacuum gains three fields, reflecting some activity
related to index cleanups during VACUUM, which is a phase that could
take a long time depending on the quantity of data to treat and the
number of indexes:
- current_index_relid, the index being processed.
- index_blks_total, total number of blocks to process.
- index_blks_done, number of blocks already processed.

There fields are new, and do not reuse the existing fields related to
heap as index cleanups may need multiple passes, where knowing both the
heap activity and the index activity could be relevant. This is
unlikely since tids are accumulated in the heap scanning phase using an
optimized radix tree, still possible. VACUUM can spawn parallel workers
to clean indexes (each worker cleans a different index); these should up
in the progress view in the shape of one extra row for each worker.

Bump catalog version.

Author: Bharath Rupireddy <bharath(dot)rupireddyforpostgres(at)gmail(dot)com>
Reviewed-by: Sami Imseih <samimseih(at)gmail(dot)com>
Reviewed-by: Michael Paquier <michael(at)paquier(dot)xyz>
Reviewed-by: Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com>
Reviewed-by: Shihao Zhong <zhong950419(at)gmail(dot)com>
Discussion: https://postgr.es/m/CALj2ACUgwSchK6jQ2CdKLBWUADTOE_zKdTff2Zg3E6hOuXKv-w@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/1378aa13430e264a990a18597e9d8fdae740927e

Modified Files
--------------
doc/src/sgml/monitoring.sgml | 57 +++++++++++++++++++++++++++++++++--
src/backend/access/heap/vacuumlazy.c | 28 +++++++++++++++--
src/backend/catalog/system_views.sql | 5 ++-
src/backend/commands/vacuumparallel.c | 31 +++++++++++++++++--
src/include/catalog/catversion.h | 2 +-
src/include/commands/progress.h | 2 ++
src/test/regress/expected/rules.out | 5 ++-
7 files changed, 120 insertions(+), 10 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Michael Paquier 2026-10-02 01:47:59 pgsql: Fix crash when describing a FETCH statement whose cursor is gone
Previous Message Masahiko Sawada 2026-10-01 13:20:37 pgsql: Refresh autovacuum costs while waiting for parallel workers.