On Fri, Nov 29, 2024 at 2:46 PM Masahiko Sawada <sawada.m...@gmail.com> wrote: > Finally, in case where we have: > > visibility map: 10000 pages set all-visible, 10000 pages set all-frozen. > > We can understand that 10000 pages newly became all-frozen, but have > no idea how many pages became all-visible but not all-frozen. It could > be even 0. Users might want to know it to understand how (auto)vacuum > and freezing are working well.
I agree that this is possible, but I am not clear why the user should care. In scenario #1, the same pages were set all-visible and also all-frozen. In scenario #2, one set of pages were set all-visible and a different set of pages were set all-frozen. Scenario #2 is a little worse, for a couple of reasons. First, in scenario #2, more pages were dirtied to achieve the same result. However, if the user is concerned about the amount of I/O that vacuum is doing, they will more likely look at the "buffer usage" and "WAL usage" lines in the VACUUM verbose output rather than at the "visibility map" line. Second, in scenario #2, we have deferred some work to the future and there is a risk that the pages will remain all-visible but not all-frozen until the next aggressive vacuum. I think it is possible someone could want to see more detailed information for this reason. However, I expect that it will be unimportant in a practical sense of Melanie's work in this area gets committed, because her goal is to set things up so that we'll revisit all-visible but not all-frozen pages sooner, so that the work doesn't build up so much prior to the next aggressive vacuum. And I think that work will have its own logging that will make it clear what it is doing, hence I don't foresee the need for more detail here. All that said, if you really want this broken out into three categories rather than two, I'm not overwhelmingly opposed to that. It is always possible that more detail could be useful; it is just difficult to decide where the likelihood is high enough to justify adding more output. -- Robert Haas EDB: http://www.enterprisedb.com