Обсуждение: Clarify VACUUM FULL exclusion in total_vacuum_time docs
Hi,
Since last_vacuum and vacuum_count in pg_stat_all_tables explicitly mention
that they don't include VACUUM FULL ("not counting VACUUM FULL"), I think
we should add the same clarification to the description of total_vacuum_time.
This field also excludes VACUUM FULL, and without this note, users might
mistakenly think the time spent on VACUUM FULL is included. Thought?
<structfield>total_vacuum_time</structfield> <type>double precision</type>
</para>
<para>
- Total time this table has been manually vacuumed, in milliseconds.
+ Total time this table has been manually vacuumed, in milliseconds
+ (not counting <command>VACUUM FULL</command>).
(This includes the time spent sleeping due to cost-based delays.)
</para></entry>
</row>
Regards,
--
Fujii Masao
NTT DATA Japan Corporation
On Friday, June 6, 2025, Fujii Masao <masao.fujii@oss.nttdata.com> wrote:
Hi,
Since last_vacuum and vacuum_count in pg_stat_all_tables explicitly mention
that they don't include VACUUM FULL ("not counting VACUUM FULL"), I think
we should add the same clarification to the description of total_vacuum_time.
This field also excludes VACUUM FULL, and without this note, users might
mistakenly think the time spent on VACUUM FULL is included. Thought?
<structfield>total_vacuum_time</structfield> <type>double precision</type>
</para>
<para>
- Total time this table has been manually vacuumed, in milliseconds.
+ Total time this table has been manually vacuumed, in milliseconds
+ (not counting <command>VACUUM FULL</command>).
(This includes the time spent sleeping due to cost-based delays.)
</para></entry>
</row>
Makes sense. Our naming this table rewrite vacuum full does confuse people into thinking it is related to vacuum.
David J.
On Fri, Jun 6, 2025 at 9:57 AM David G. Johnston
<david.g.johnston@gmail.com> wrote:
> On Friday, June 6, 2025, Fujii Masao <masao.fujii@oss.nttdata.com> wrote:
>>
>> Hi,
>>
>> Since last_vacuum and vacuum_count in pg_stat_all_tables explicitly mention
>> that they don't include VACUUM FULL ("not counting VACUUM FULL"), I think
>> we should add the same clarification to the description of total_vacuum_time.
>> This field also excludes VACUUM FULL, and without this note, users might
>> mistakenly think the time spent on VACUUM FULL is included. Thought?
>>
>> <structfield>total_vacuum_time</structfield> <type>double precision</type>
>> </para>
>> <para>
>> - Total time this table has been manually vacuumed, in milliseconds.
>> + Total time this table has been manually vacuumed, in milliseconds
>> + (not counting <command>VACUUM FULL</command>).
>> (This includes the time spent sleeping due to cost-based delays.)
>> </para></entry>
>> </row>
>
>
> Makes sense. Our naming this table rewrite vacuum full does confuse people into thinking it is related to vacuum.
>
+1 for this change, but I think we should also update
n_ins_since_vacuum as well, no?
Robert Treat
https://xzilla.net
On 2025/06/07 0:13, Robert Treat wrote:
> On Fri, Jun 6, 2025 at 9:57 AM David G. Johnston
> <david.g.johnston@gmail.com> wrote:
>> On Friday, June 6, 2025, Fujii Masao <masao.fujii@oss.nttdata.com> wrote:
>>>
>>> Hi,
>>>
>>> Since last_vacuum and vacuum_count in pg_stat_all_tables explicitly mention
>>> that they don't include VACUUM FULL ("not counting VACUUM FULL"), I think
>>> we should add the same clarification to the description of total_vacuum_time.
>>> This field also excludes VACUUM FULL, and without this note, users might
>>> mistakenly think the time spent on VACUUM FULL is included. Thought?
>>>
>>> <structfield>total_vacuum_time</structfield> <type>double precision</type>
>>> </para>
>>> <para>
>>> - Total time this table has been manually vacuumed, in milliseconds.
>>> + Total time this table has been manually vacuumed, in milliseconds
>>> + (not counting <command>VACUUM FULL</command>).
>>> (This includes the time spent sleeping due to cost-based delays.)
>>> </para></entry>
>>> </row>
>>
>>
>> Makes sense. Our naming this table rewrite vacuum full does confuse people into thinking it is related to vacuum.
>>
>
> +1 for this change,
Thanks both for the review!
> but I think we should also update
> n_ins_since_vacuum as well, no?
I didn't update n_ins_since_vacuum since it's mainly used by autovacuum rather
than end users, and there haven't been any complaints about the current
description so far. That said, I don't have a strong opinion either way,
so I'm fine with making the change if others think it's worthwhile.
Regards,
--
Fujii Masao
NTT DATA Japan Corporation
On Thu, Jun 12, 2025 at 10:28 PM Fujii Masao
<masao.fujii@oss.nttdata.com> wrote:
> On 2025/06/07 0:13, Robert Treat wrote:
> > On Fri, Jun 6, 2025 at 9:57 AM David G. Johnston
> > <david.g.johnston@gmail.com> wrote:
> >> On Friday, June 6, 2025, Fujii Masao <masao.fujii@oss.nttdata.com> wrote:
> >>>
> >>> Hi,
> >>>
> >>> Since last_vacuum and vacuum_count in pg_stat_all_tables explicitly mention
> >>> that they don't include VACUUM FULL ("not counting VACUUM FULL"), I think
> >>> we should add the same clarification to the description of total_vacuum_time.
> >>> This field also excludes VACUUM FULL, and without this note, users might
> >>> mistakenly think the time spent on VACUUM FULL is included. Thought?
> >>>
> >>> <structfield>total_vacuum_time</structfield> <type>double precision</type>
> >>> </para>
> >>> <para>
> >>> - Total time this table has been manually vacuumed, in milliseconds.
> >>> + Total time this table has been manually vacuumed, in milliseconds
> >>> + (not counting <command>VACUUM FULL</command>).
> >>> (This includes the time spent sleeping due to cost-based delays.)
> >>> </para></entry>
> >>> </row>
> >>
> >>
> >> Makes sense. Our naming this table rewrite vacuum full does confuse people into thinking it is related to
vacuum.
> >>
> >
> > +1 for this change,
>
> Thanks both for the review!
>
>
> > but I think we should also update
> > n_ins_since_vacuum as well, no?
>
> I didn't update n_ins_since_vacuum since it's mainly used by autovacuum rather
> than end users, and there haven't been any complaints about the current
> description so far. That said, I don't have a strong opinion either way,
> so I'm fine with making the change if others think it's worthwhile.
>
Well, I admit I mostly mentioned it because when I noticed this one
wasn't documented the same way the other ones were, I second-guessed
myself about if I knew how it really behaved and did a quick test to
confirm :-)
I suspect others might have similar confusion.
Robert Treat
https://xzilla.net
On 2025/06/13 21:09, Robert Treat wrote: > Well, I admit I mostly mentioned it because when I noticed this one > wasn't documented the same way the other ones were, I second-guessed > myself about if I knew how it really behaved and did a quick test to > confirm :-) > I suspect others might have similar confusion. Maybe I failed to follow your point here... Are you suggesting it's worth mentioning that n_ins_since_vacuum doesn't count VACUUM FULL, to help avoid potential user confusion? If so, since n_ins_since_vacuum was introduced in v13, we'd need to backpatch that documentation change to v13? As for total_vacuum_time, since it's new in v18, I'd like to apply the proposed change there. Regards, -- Fujii Masao NTT DATA Japan Corporation
On Tue, Jun 17, 2025 at 10:54 AM Fujii Masao <masao.fujii@oss.nttdata.com> wrote: > On 2025/06/13 21:09, Robert Treat wrote: > > Well, I admit I mostly mentioned it because when I noticed this one > > wasn't documented the same way the other ones were, I second-guessed > > myself about if I knew how it really behaved and did a quick test to > > confirm :-) > > I suspect others might have similar confusion. > > Maybe I failed to follow your point here... Are you suggesting it's worth > mentioning that n_ins_since_vacuum doesn't count VACUUM FULL, to help > avoid potential user confusion? If so, since n_ins_since_vacuum was > introduced in v13, we'd need to backpatch that documentation change to v13? > > As for total_vacuum_time, since it's new in v18, I'd like to apply > the proposed change there. > I think the more cases where you document this behavior (and I do like the idea of documenting it for total_vacuum_time), the more one is likely to think that places where it is not documented operate differently. To that end, I think documenting it for n_ins_since_vacuum as well is a good idea, but I don't feel strongly that it needs to be backpatched; the old documentation wasn't wrong per se, rather this is a documentation improvement as a result of new development. Robert Treat https://xzilla.net
On 2025/06/18 6:53, Robert Treat wrote: > I think the more cases where you document this behavior (and I do like > the idea of documenting it for total_vacuum_time), the more one is > likely to think that places where it is not documented operate > differently. To that end, I think documenting it for > n_ins_since_vacuum as well is a good idea, but I don't feel strongly > that it needs to be backpatched; the old documentation wasn't wrong > per se, rather this is a documentation improvement as a result of new > development. Agreed. The attached patch updates the docs to clarify that both total_vacuum_time and n_ins_since_vacuum exclude VACUUM FULL. Unless there are any objections, I'll commit this to master and back-patch it to v18 only. Regards, -- Fujii Masao NTT DATA Japan Corporation
Вложения
On Tue, 2025-07-15 at 01:51 +0900, Fujii Masao wrote: > > On 2025/06/18 6:53, Robert Treat wrote: > > I think the more cases where you document this behavior (and I do like > > the idea of documenting it for total_vacuum_time), the more one is > > likely to think that places where it is not documented operate > > differently. To that end, I think documenting it for > > n_ins_since_vacuum as well is a good idea, but I don't feel strongly > > that it needs to be backpatched; the old documentation wasn't wrong > > per se, rather this is a documentation improvement as a result of new > > development. > > Agreed. The attached patch updates the docs to clarify that both > total_vacuum_time and n_ins_since_vacuum exclude VACUUM FULL. > > Unless there are any objections, I'll commit this to master and > back-patch it to v18 only. I think the patch is good. One question for me is whether we should use "VACUUM (FULL)" rather than "VACUUM FULL". On the one hand, the documentation (and most users) still use the old syntax without parentheses almost everywhere. On the other hand, reading the VACUUM reference page, I get the feeling that the new syntax with parentheses should be favored. After all, the old syntax doesn't support any of the recently added options and restricts the option order. So perhaps we should start propagating the parentheses more, and the documentation is the perfect place to do that. Yours, Laurenz Albe
On Tue, Jul 15, 2025 at 1:44 AM Laurenz Albe <laurenz.albe@cybertec.at> wrote: > > On Tue, 2025-07-15 at 01:51 +0900, Fujii Masao wrote: > > > > On 2025/06/18 6:53, Robert Treat wrote: > > > I think the more cases where you document this behavior (and I do like > > > the idea of documenting it for total_vacuum_time), the more one is > > > likely to think that places where it is not documented operate > > > differently. To that end, I think documenting it for > > > n_ins_since_vacuum as well is a good idea, but I don't feel strongly > > > that it needs to be backpatched; the old documentation wasn't wrong > > > per se, rather this is a documentation improvement as a result of new > > > development. > > > > Agreed. The attached patch updates the docs to clarify that both > > total_vacuum_time and n_ins_since_vacuum exclude VACUUM FULL. > > > > Unless there are any objections, I'll commit this to master and > > back-patch it to v18 only. > > I think the patch is good. > > One question for me is whether we should use "VACUUM (FULL)" rather > than "VACUUM FULL". > > On the one hand, the documentation (and most users) still use the > old syntax without parentheses almost everywhere. > > On the other hand, reading the VACUUM reference page, I get the > feeling that the new syntax with parentheses should be favored. > After all, the old syntax doesn't support any of the recently > added options and restricts the option order. > > So perhaps we should start propagating the parentheses more, and > the documentation is the perfect place to do that. > That might make sense, but how far we want to take it in the first go around seems like a discussion that is best put forth in a separate thread / patch. Robert Treat https://xzilla.net
On Tue, 2025-07-15 at 10:27 -0400, Robert Treat wrote: > On the other hand, reading the VACUUM reference page, I get the > > feeling that the new syntax with parentheses should be favored. > > After all, the old syntax doesn't support any of the recently > > added options and restricts the option order. > > > > So perhaps we should start propagating the parentheses more, and > > the documentation is the perfect place to do that. > > That might make sense, but how far we want to take it in the first go > around seems like a discussion that is best put forth in a separate > thread / patch. Makes sense, and I have no objection to the patch as it is. Yours, Laurenz Albe
On 2025/07/15 23:27, Robert Treat wrote: > On Tue, Jul 15, 2025 at 1:44 AM Laurenz Albe <laurenz.albe@cybertec.at> wrote: >> >> On Tue, 2025-07-15 at 01:51 +0900, Fujii Masao wrote: >>> >>> On 2025/06/18 6:53, Robert Treat wrote: >>>> I think the more cases where you document this behavior (and I do like >>>> the idea of documenting it for total_vacuum_time), the more one is >>>> likely to think that places where it is not documented operate >>>> differently. To that end, I think documenting it for >>>> n_ins_since_vacuum as well is a good idea, but I don't feel strongly >>>> that it needs to be backpatched; the old documentation wasn't wrong >>>> per se, rather this is a documentation improvement as a result of new >>>> development. >>> >>> Agreed. The attached patch updates the docs to clarify that both >>> total_vacuum_time and n_ins_since_vacuum exclude VACUUM FULL. >>> >>> Unless there are any objections, I'll commit this to master and >>> back-patch it to v18 only. Done, thanks! >> I think the patch is good. >> >> One question for me is whether we should use "VACUUM (FULL)" rather >> than "VACUUM FULL". >> >> On the one hand, the documentation (and most users) still use the >> old syntax without parentheses almost everywhere. >> >> On the other hand, reading the VACUUM reference page, I get the >> feeling that the new syntax with parentheses should be favored. >> After all, the old syntax doesn't support any of the recently >> added options and restricts the option order. >> >> So perhaps we should start propagating the parentheses more, and >> the documentation is the perfect place to do that. I'm not sure if changing it to "VACUUM (FULL)" is a good idea. In several places, the docs use "VACUUM FULL" to refer to the full vacuum operation as a name, rather than the exact command syntax. Changing all instances to "VACUUM (FULL)" might make the docs harder to read for users already familiar with the term "VACUUM FULL". That said, if many others prefer switching to "VACUUM (FULL)", I have no strong objection. In that case, we might also consider changing "EXPLAIN ANALYZE" to "EXPLAIN (ANALYZE)" for the same reason. > That might make sense, but how far we want to take it in the first go > around seems like a discussion that is best put forth in a separate > thread / patch. +1 Regards, -- Fujii Masao NTT DATA Japan Corporation