Re: Vacuum statistics
Alena Rybakina <a.rybakina@postgrespro.ru>
From: Alena Rybakina <a.rybakina@postgrespro.ru>
To: Sami Imseih <samimseih@gmail.com>
Cc: Ilia Evdokimov <ilya.evdokimov@tantorlabs.com>,
Alexander Korotkov <aekorotkov@gmail.com>, Jim Nasby <jnasby@upgrade.com>,
Andrei Zubkov <zubkov@moonset.ru>, Masahiko Sawada <sawada.mshk@gmail.com>,
Melanie Plageman <melanieplageman@gmail.com>,
jian he <jian.universality@gmail.com>,
pgsql-hackers <pgsql-hackers@postgresql.org>, a.lepikhov@postgrespro.ru
Date: 2025-01-10T15:31:59Z
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 →
-
Move wal_buffers_full from PgStat_PendingWalStats to WalUsage
- eaf502747bac 18.0 cited
Sorry, I made a typo due to lack of sleep, I've marked below where exactly just in case. On 10.01.2025 15:04, Alena Rybakina wrote: > > Hi, I have updated the patch. Fix minor mistakes in the document, > added the wraparound_failsafe_count statistics - it accounts the > number of times when the vacuum operates heap relation to prevent > workaround problem, fixed "shemaname". > I didn't mean workaround problem but wraparound problem. >>> Secondly, where to put the total time of vacuum for indexes and databases? >>> It would be incorrect not to take them into account at all. What if we remove the total time from >>> the heap statistics and add it to pg_stat_tables and only leave the vacuum statistics total time of >>> vacuum operation of indexes and databases? >>> It seems strange to me that they will have to be viewed from different views. >>> >>> I think it is necessary to look at the total time for tables into perspective of how much >>> time vacuum spent in total on processing indexes, since indexes can be bloated, for example. >>> I think it is better to leave these statistics here. >> You make valid points. I now think because track_vacuum_statistics is >> optional, we should track total_time in 2 places. First place in the new >> view being proposed here and the second place is in pg_stat_all_tables >> as being proposed here [3]. This way if track_vacuum_statistics is off, the >> total_time of vacuum could still be tracked by pg_stat_all_tables. >> >> By the way, the current patch does not track materialized view, >> but it should as materialized views can also be vacuumed. >> >> Regards, >> >> Sami >> >> [1]https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-VACUUM-FAILSAFE-AGE >> [2]https://github.com/postgres/postgres/blob/master/src/backend/access/heap/vacuumlazy.c#L2437-L2444 >> [3]https://commitfest.postgresql.org/52/5485/ >> >> > I don't agree with this. > > Firstly, the hook is enabled by default, that is, it must be specially > disabled so that the vacuum statistics are not collected. > > Secondly, it will cause confusion. First, the hook was disabled and > statistics were collected in one place - pg_stat_all_tables, and then > it was enabled and the user notices that the statistics there stopped > accumulating, > he is in a panic, "suddenly the vacuum does not work, what to do?". > The second point here bothers me, how to take into account this > statistics with the current detailed vacuum statistics? After all, > adding these values is wrong - > they do not show the correct statistics regarding the same pages > processed by vacuum, ignoring it later means that they will be > redundant. I think it is better to save it here, since this will save > us from possible confusion. > > Secondly, it will immediately show other important parameters > regarding this statistics - how long the vacuum was sleep (delay_time > in my patches), how much time the vacuum spent on processing indexes > during its processing. > Without this information, this assessment will not be voluminous and > indicative enough. > I didn't mean hook but guc here. -- Regards, Alena Rybakina Postgres Professional