On Fri, Nov 1, 2024 at 5:12 AM Alastair Turner <min...@decodable.me> wrote: > > 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).
+1 > visibility map: %u pages all-visible (%u marked by this operation), %u pages > all-frozen (%u marked by this operation) Having "marked by this operation" twice seems to be redundant. How about something like the output below? visibility map: %u pages set all-visible (%u pages total), %u pages set all-frozen (%u pages total) Regards, -- Masahiko Sawada Amazon Web Services: https://aws.amazon.com