On Fri, Jul 3, 2015 at 1:23 AM, Simon Riggs <simon@2ndquadrant.com> wrote: > On 2 July 2015 at 16:30, Sawada Masahiko <sawada.mshk@gmail.com> wrote: > >> >> Also, the flags of each heap page header might be set PD_ALL_FROZEN, >> as well as all-visible > > > Is it possible to have VM bits set to frozen but not visible? > > The description makes those two states sound independent of each other. > > Are they? Or not? Do we test for an impossible state? >
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?
Having a crash-proof bitmap of all-empty pages would make vacuum truncation scans much more efficient.