On 15 February 2017 at 08:07, Masahiko Sawada <sawada.mshk@gmail.com> wrote:
>
> It's a bug. Attached latest version patch, which passed make check.
In its current form, I'm not sure this is a good idea. Problems...
1. I'm pretty sure the world doesn't need another VACUUM parameter
I suggest that we use the existing vacuum scale factor/4 to reflect
that indexes are more sensitive to bloat.
2. The current btree vacuum code requires 2 vacuums to fully reuse
half-dead pages. So skipping an index vacuum might mean that second
index scan never happens at all, which would be bad.
I suggest that we store the number of half-dead pages in the metapage
after each VACUUM, so we can decide whether to skip the scan or not.
And we use some math like each half-dead page that needs to be reused
is worth 250 index entries, so the decision to skip is based upon rows
and empty pages, not just recently vacuumed rows.
--
Simon Riggs http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services