Re: Vacuum statistics

Ilia Evdokimov <ilya.evdokimov@tantorlabs.com>

From: Ilia Evdokimov <ilya.evdokimov@tantorlabs.com>
To: Alena Rybakina <a.rybakina@postgrespro.ru>, pgsql-hackers <pgsql-hackers@postgresql.org>
Cc: jian he <jian.universality@gmail.com>, Alexander Korotkov <aekorotkov@gmail.com>, Andrei Zubkov <zubkov@moonset.ru>, Alena Rybakina <lena.ribackina@yandex.ru>, a.lepikhov@postgrespro.ru
Date: 2024-11-10T16:51:09Z
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

On 08.11.2024 22:23, Alena Rybakina wrote:
> Hi! Thank you for review!
>
> On 07.11.2024 17:49, Ilia Evdokimov wrote:
>>
>> Thank you for fixing it.
>>
>> 1) I have found some typos in the test output files (out-files) when 
>> running 'make check' and 'make check-world'. These typos might cause 
>> minor discrepancies in test results. You may already be aware of 
>> them, but I wanted to bring them to your attention in case they 
>> haven't been noticed. I believe these can be fixed quickly.
>>
> Yes, I'll fix it)
>>
>> 2) Additionally, I observed that when we create a table and insert 
>> some rows, executing the VACUUM FULL command does not update the 
>> information in the 'pg_stat_get_vacuum_tables' However, running the 
>> VACUUM command does update this information as expected. This seems 
>> inconsistent, and it might be a bug.
>>
>> Example:
>> CREATE TABLE t (i INT, j INT) WITH (autovacuum_enabled = false);
>> INSERT INTO t SELECT i/10, i/100 FROM GENERATE_SERIES(1,1000000) i;
>> SELECT * FROM pg_stat_get_vacuum_tables WHERE relname = 't';
>> schema | relname |    relid | total_blks_read | .........
>> -----------+------------+---------+----------------------+---------
>>    public | t            | 21416 |                       0 | ......
>> (1 row)
>>
>> VACUUM FULL;
>> SELECT * FROM pg_stat_get_vacuum_tables WHERE relname = 't';
>> schema | relname |    relid | total_blks_read | .........
>> -----------+------------+---------+----------------------+---------
>>    public | t            | 21416 |                       0 | ......
>> (1 row)
>>
>> VACUUM;
>> SELECT * FROM pg_stat_get_vacuum_tables WHERE relname = 't';
>> schema | relname |    relid | total_blks_read | .........
>> -----------+------------+---------+----------------------+---------
>>    public | t            | 21416 |                 4425 | ......
>> (1 row)
>>
>>
> vacuum full operation doesn't call a vacuum operation, so we can't 
> collect statistics for it. Furthermore, this is a different operation 
> than vacuum because it completely rebuilds the table and indexes, so 
> it looks like your previous table and its indexes were completely 
> removed. To sum up, I think it isn't a bug that the statistics aren't 
> showing here.
>
Ah, you're right. This table does contain the _statistics_ for it. 
Everything is okay then. Sorry for the confusion.

Regards,
Ilia Evdokimov,
Tantor Labs LLC.