Andres Freund wrote:
> On 2014-12-18 16:41:04 -0300, Alvaro Herrera wrote:
> > + if (scan_all)
> > + appendStringInfo(&buf, _("waited for %d buffer pins\n"),
> > + vacrelstats->pinned_pages);
> > + else
> > + appendStringInfo(&buf,
> > + _("skipped %d pages due to buffer pins\n"),
> > + vacrelstats->pinned_pages);
>
> Unless I miss something this is, as mentioned before, not
> correct. scan_all doesn't imply at all that we waited for buffer
> pins. We only do so if lazy_check_needs_freeze(buf). Which usually won't
> be true for a *significant* number of pages.
Ah, interesting, I didn't remember we had that. I guess one possible
tweak is to discount the pages we skip from pinned_pages; or we could
keep a separate count of pages waited for. Jim, up for a patch?
--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services