| From: | Alexander Korotkov <aekorotkov(at)gmail(dot)com> |
|---|---|
| To: | Alena Rybakina <lena(dot)ribackina(at)yandex(dot)ru> |
| Cc: | pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>, Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com>, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>, Jim Nasby <jnasby(at)upgrade(dot)com>, Bertrand Drouvot <bertranddrouvot(dot)pg(at)gmail(dot)com>, Kirill Reshke <reshkekirill(at)gmail(dot)com>, Melanie Plageman <melanieplageman(at)gmail(dot)com>, jian he <jian(dot)universality(at)gmail(dot)com>, Sami Imseih <samimseih(at)gmail(dot)com>, vignesh C <vignesh21(at)gmail(dot)com>, Ilia Evdokimov <ilya(dot)evdokimov(at)tantorlabs(dot)com>, Andrey Borodin <x4mmm(at)yandex-team(dot)ru>, Andrei Zubkov <zubkov(at)moonset(dot)ru>, Andrei Lepikhov <lepihov(at)gmail(dot)com> |
| Subject: | Re: Vacuum statistics |
| Date: | 2026-06-16 17:30:26 |
| Message-ID: | CAPpHfdvsNSu3vxBQK4srQk5bp1PDKkMLfbv7HhzE3D_yW9ELvg@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Hi, Alena!
On Tue, Jun 16, 2026 at 6:10 PM Alena Rybakina <lena(dot)ribackina(at)yandex(dot)ru> wrote:
> Attached is a reworked version of the patch set. The main change is that the
> statistics are no longer exposed through a contrib extension; they are now
> built-in system views - pg_stat_vacuum_tables, pg_stat_vacuum_indexes and
> pg_stat_vacuum_database - backed by pg_stat_get_vacuum_*() functions and stored
> in the cumulative statistics system under a dedicated stats kind
> (PGSTAT_KIND_VACUUM_RELATION). Collection is controlled by a single
> track_vacuum_statistics GUC; the per-relation tracking list, the reset
> function and the shared-memory-size helper from the extension version are gone.
>
> The series is also split into smaller, self-contained commits - one per metric
> category (core heap/tuple counters, missed dead tuples/pages, visibility-map
> transitions, the buffer/WAL/timing sampling machinery, per-relation buffers,
> timing and the wraparound failsafe, and WAL) - with the documentation and
> tests growing inside each commit.
>
> Other changes:
>
> index statistics are accumulated across the bulkdelete and cleanup passes and reported once per index, in both the serial and parallel paths;
> index_vacuum_count is no longer exposed;
> the regression coverage is now an in-core vacuum_stats test with deterministic checks and dedicated scenarios for the non-trivial paths (truncation, freeze, cost delay, WAL full-page images, index page deletion), an isolation test for recently_dead/missed_dead tuples, and a xid_wraparound TAP test for the failsafe counter.
Thank you for the updated patchset.
Some notes about it.
1) PgStat_CommonCounts.interrupts_count is never incremented.
2) LVRelState.wraparound_failsafe_count can only be incremented once
in lazy_check_wraparound_failsafe(). Should we replace it with a
bool?
3) Vacuum statistics isn't counted correctly for parallel index
vacuum. parallel_vacuum_process_one_index() doesn't call neither
extvac_stats_start_idx(), extvac_stats_end_idx(), or
extvac_accumulate_idx_repor(). This leads all index vacuum stats to
go the heap stats. I also think you need a reliable test cases to
cover issues like this.
4) It seems that pgstat_vacuum_db_flush_cb() and
pgstat_vacuum_relation_flush_cb() are unused as
pgstat_report_vacuum_extstats() reports directly to shmem. What was
your intention here?
5) Commit message of 0001 uses stale names
rev_all_visible_pages/rev_all_frozen_pages counters for
visible_page_marks_cleared` / `frozen_page_marks_cleared.
------
Regards,
Alexander Korotkov
Supabase
| From | Date | Subject | |
|---|---|---|---|
| Previous Message | Corey Huinker | 2026-06-16 17:25:27 | Re: Fix --missing-stats-only false positive for partitioned expression indexes |