Re: Vacuum statistics
От | Alena Rybakina |
---|---|
Тема | Re: Vacuum statistics |
Дата | |
Msg-id | 9a94f2a0-4698-40e3-9010-2567d3b8ba55@postgrespro.ru обсуждение исходный текст |
Ответ на | Re: Vacuum statistics (Alexander Korotkov <aekorotkov@gmail.com>) |
Список | pgsql-hackers |
On 02.06.2025 19:25, Alexander Korotkov wrote: > On Tue, May 13, 2025 at 12:49 PM Alena Rybakina > <a.rybakina@postgrespro.ru> wrote: >> On 12.05.2025 08:30, Amit Kapila wrote: >>> On Fri, May 9, 2025 at 5:34 PM Alena Rybakina <a.rybakina@postgrespro.ru> wrote: >>>> I did a rebase and finished the part with storing statistics separately from the relation statistics - now it is possibleto disable the collection of statistics for relationsh using gucs and >>>> this allows us to solve the problem with the memory consumed. >>>> >>> I think this patch is trying to collect data similar to what we do for >>> pg_stat_statements for SQL statements. So, can't we follow a similar >>> idea such that these additional statistics will be collected once some >>> external module like pg_stat_statements is enabled? That module should >>> be responsible for accumulating and resetting the data, so we won't >>> have this memory consumption issue. >> The idea is good, it will require one hook for the pgstat_report_vacuum >> function, the extvac_stats_start and extvac_stats_end functions can be >> run if the extension is loaded, so as not to add more hooks. > +1 > Nice idea of a hook. Given the volume of the patch, it might be a > good idea to keep this as an extension. Okay, I'll realize it and apply the patch) > >> But I see a problem here with tracking deleted objects for which >> statistics are no longer needed. There are two solutions to this and I >> don't like both of them, to be honest. >> The first way is to add a background process that will go through the >> table with saved statistics and check whether the relation or the >> database are relevant now or not and if not, then >> delete the vacuum statistics information for it. This may be >> resource-intensive. The second way is to add hooks for deleting the >> database and relationships (functions dropdb, index_drop, >> heap_drop_with_catalog). > Can we workaround this with object_access_hook? I think this could fix the problem. For the OAT-DROP access type, we can call a function to reset the vacuum statistics for relations that are about to be dropped. At the moment, I don’t see any limitations to using this approach. -- Regards, Alena Rybakina Postgres Professional
В списке pgsql-hackers по дате отправления: