Re: Add mode column to pg_stat_progress_vacuum

From: Shinya Kato <shinya11(dot)kato(at)gmail(dot)com>
To: Sami Imseih <samimseih(at)gmail(dot)com>
Cc: Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com>, Nathan Bossart <nathandbossart(at)gmail(dot)com>, Robert Treat <rob(at)xzilla(dot)net>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: Add mode column to pg_stat_progress_vacuum
Date: 2025-10-09 12:04:20
Message-ID: CAOzEurTq_72iBiinfyswXkda9ARm_xkASXHVyKV-EZFLmVU=-g@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Wed, Oct 8, 2025 at 4:40 AM Sami Imseih <samimseih(at)gmail(dot)com> wrote:
>
> > > I wonder if we could be even more granular
> > > for the "normal autovacuum" case and point to the reason the table was
> > > chosen. For example, was it the insert threshold, the update/delete
> > > threshold, etc.?
> >
> > Sounds like reasonable information. I guess we might want to have such
> > information in a cumulative statistics view but do you think it's
> > better to have it in a dynamic statistics view?
>
> +1 for this information in cumulative stats, on a per table level for sure.
> I do think however the pg_stat_all_tables views is getting too wide
> and moving new relation vacuum stats to a separate stats view will
> be very useful.

Thanks for the discussion.

IIUC are you suggesting I add such a last_autovacuum_reason column to
pg_stat_all_tables, which would be populated with one of the following
values?
- autovacuum_vacuum_threshold
- autovacuum_vacuum_insert_threshold
- autovacuum_freeze_max_age
- autovacuum_multixact_freeze_max_age

(For consistency, I should probably add a last_autoanalyze_reason
column to pg_stat_all_tables as well.)

--
Best regards,
Shinya Kato
NTT OSS Center

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2025-10-09 12:05:37 Re: Should we update the random_page_cost default value?
Previous Message Álvaro Herrera 2025-10-09 12:02:08 Re: VACUUM (PARALLEL) option processing not using DefElem the way it was intended