On Thu, 31 Oct 2024 at 18:51, Melanie Plageman <melanieplage...@gmail.com>
wrote:

>
> Would it also be useful to have the number set all-visible? It seems
> like if we added a new line prefixed with visibility map, it ought to
> include all-visible and all-frozen then.
> Something like this:
>  visibility map: %u pages set all-visible, %u pages set all-frozen.
>
> I find it more confusing to say "up to X may have been removed from
> the table." It's unclear what that means -- especially since we
> already have "pages removed" in another part of the log message.
>

Yeah, on looking at it again, that does seem to make things worse.

We actually could call visibilitymap_count() at the beginning of the
> vacuum and then log the difference between that and the results of
> calling it after finishing the vacuum. We currently call it after
> truncating the table anyway. That won't tell you how many pages were
> set all-frozen by this vacuum, as pages could have been unfrozen by
> DML that occurred after the page was vacuumed. It might be useful in
> addition to the line about the visibility map.
>
> This is somewhat in conflict with Robert and Peter's points about how
> autovacuum logging should be about what this vacuum did. But, we do
> have lines that talk about the before and after values:
>
> new relfrozenxid: 748, which is 3 XIDs ahead of previous value
>
> So, we could do something like:
> visibility map before: %u pages all-visible, %u pages all-frozen
> visibility map after: %u pages all-visible, %u pages all-frozen
> or
> visibility map after: %u pages all-visible (%u more than before), %u
> pages all-frozen (%u more than before)
>
> I still prefer adding how many pages were set all-frozen by this vacuum,
> though.
>
> I also like the idea of showing how many pages were set all-frozen by this
vacuum (which meets Robert's requirement for figuring out if a vacuum
operation did anything useful). The values for pages marked all visible and
all frozen can fluctuate for a number of reasons, even, as you point out,
from concurrent activity during the vacuum. This is different from
relfrozenxid which is a kind of high water mark. So I think the output
styles can reasonably be different.

visibility map: %u pages all-visible (%u marked by this operation), %u
pages all-frozen (%u marked by this operation)

seems to support everyone's requirements

Reply via email to