On Wed, Jul 8, 2015 at 10:10 PM, Sawada Masahiko <sawada.m...@gmail.com>
wrote:

> On Thu, Jul 9, 2015 at 4:31 AM, Jeff Janes <jeff.ja...@gmail.com> wrote:
> > On Fri, Jul 3, 2015 at 1:25 AM, Sawada Masahiko <sawada.m...@gmail.com>
> > wrote:
> >>
> >> It's impossible to have VM bits set to frozen but not visible.
> >> These bit are controlled independently. But eventually, when
> >> all-frozen bit is set, all-visible is also set.
> >
> >
> > If that combination is currently impossible, could it be used indicate
> that
> > the page is all empty?
>
> Yeah, the status of that VM bits set to frozen but not visible is
> impossible, so we could use this status for another something status
> of the page.
>
> > Having a crash-proof bitmap of all-empty pages would make vacuum
> truncation
> > scans much more efficient.
>
> The empty page is always marked all-visible by vacuum today, it's not
> enough?
>

The "current" vacuum can just remember that they were empty as well as
all-visible.

But the next vacuum that occurs on the table won't know that they are
empty, just that they are all-visible, so it can't truncate them away
without having to read each one first.

It is a minor thing, but if there is no other use for this fourth
"bit-space", it seems a shame to waste it when there is some use for it.  I
haven't looked at the code around this area to know how hard it would be to
implement the setting and clearing of the bit.

Cheers,

Jeff

Reply via email to