Re: Vacuum statistics

Alena Rybakina <a.rybakina@postgrespro.ru>

From: Alena Rybakina <a.rybakina@postgrespro.ru>
To: Alexander Korotkov <aekorotkov@gmail.com>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>, Jim Nasby <jnasby@upgrade.com>, Ilia Evdokimov <ilya.evdokimov@tantorlabs.com>, Kirill Reshke <reshkekirill@gmail.com>, Andrei Zubkov <zubkov@moonset.ru>, Masahiko Sawada <sawada.mshk@gmail.com>, Melanie Plageman <melanieplageman@gmail.com>, jian he <jian.universality@gmail.com>, a.lepikhov@postgrespro.ru, Sami Imseih <samimseih@gmail.com>
Date: 2025-02-04T15:22:52Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Move wal_buffers_full from PgStat_PendingWalStats to WalUsage

Attachments

Hi! Thank you for your review!

On 02.02.2025 23:43, Alexander Korotkov wrote:
> On Mon, Jan 13, 2025 at 3:26 PM Alena Rybakina
> <a.rybakina@postgrespro.ru> wrote:
>> I noticed that the cfbot is bad, the reason seems to be related to the lack of a parameter in src/backend/utils/misc/postgresql.conf.sample. I added it, it should help.
> The patch doesn't apply cleanly.  Please rebase.
I rebased them.
>
> I see you introduced new GUC variable pgstat_track_vacuum_statistics,
> which should address the increased size of statistics.  However, I
> don't see how it could affect the size of PgStat_StatTabEntry struct.
> It seems that when pgstat_track_vacuum_statistics == 0, extended
> vacuum statistics is not collected but the size of hash table entries
> is the same.

Yes, hash table entries will be the same but vacuum_ext structure stored 
in PgStat_StatTabEntry will not be filled with statistics, although
vacuum_ext structure stored in PgStat_StatDBEntry will be fill be.

>   Also, should pgstat_track_vacuum_statistics also affect
> per database statistics?

According to my original idea, I thought that we could collect extended 
statistics on relationships depending on whether the hook is enabled, 
and always on databases. This will help us to constantly collect 
statistics on the vacuum and notice when something is wrong and at the 
same time not very expensive: there are much fewer databases compared to 
the same relationships and there are much fewer statistics there. You 
can introduce an additional hook that disables all collection of vacuum 
statistics. This patch can be seen here for the 17th version of the 
patch [0], I have not yet started adding it, since we did not come to an 
agreement.

At the moment, I have made a patch for vacuum statistics for databases 
that disables all vacuum statistics, the hook is disabled by default.

[0] 
https://www.postgresql.org/message-id/attachment/170462/v17-0003-Machinery-for-grabbing-an-extended-vacuum-statistics.patch

>
> The name of 0001 is "... on heap relations".  Should we say "on table
> relations", because new machinery should work with alternative table
> AMs as well.
Agree. Fixed
>
> There are deletions of empty lines in
> src/include/utils/pgstat_internal.h and src/include/pgstat.h.  Please,
> remote them as it's not purpose of this patchset.
>
fixed

-- 
Regards,
Alena Rybakina
Postgres Professional