pgsql: Report per-index vacuum progress in pg_stat_progress_vacuum - Mailing list pgsql-committers

From Michael Paquier
Subject pgsql: Report per-index vacuum progress in pg_stat_progress_vacuum
Date
Msg-id E1xCPIv-000000023Lx-1nWV@gemulon.postgresql.org
Whole thread
List 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.rupireddyforpostgres@gmail.com>
Reviewed-by: Sami Imseih <samimseih@gmail.com>
Reviewed-by: Michael Paquier <michael@paquier.xyz>
Reviewed-by: Masahiko Sawada <sawada.mshk@gmail.com>
Reviewed-by: Shihao Zhong <zhong950419@gmail.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(-)


pgsql-committers by date:

Previous
From: Masahiko Sawada
Date:
Subject: pgsql: Refresh autovacuum costs while waiting for parallel workers.
Next
From: Michael Paquier
Date:
Subject: pgsql: Fix crash when describing a FETCH statement whose cursor is gone