Re: Eliminating PD_ALL_VISIBLE, take 2

From: Jeff Davis <pgsql(at)j-davis(dot)com>
To: Heikki Linnakangas <hlinnakangas(at)vmware(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: Eliminating PD_ALL_VISIBLE, take 2
Date: 2013-05-30 17:07:42
Message-ID: 1369933662.23418.17.camel@jdavis
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thu, 2013-05-30 at 11:32 +0300, Heikki Linnakangas wrote:
> > That could cause a torn page and checksum failure if checksums are
> > enabled.

Thank you, I missed that in the rebase; it should be
MarkBufferDirtyHint().

> Come to think of it, even without the torn page & checksum issue, do we
> really want to actively clear the all-visible flags after upgrade? For
> tables that haven't been changed, and thus have the all-visible bits
> set, that amounts to a complete rewrite on the first vacuum after
> upgrade. That's expensive.

I expected that question and intended to raise it for discussion when
and if we get past performance concerns (I believe Robert is still not
convinced that the patch is viable).

We have a few options: We can ignore the bit entirely, or we can
aggressively unset it, or we can opportunistically unset it if the page
is already dirty. I don't think we're in a hurry to reuse that bit for
something else, so maybe it's best to just ignore it entirely.

Regards,
Jeff Davis

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Josh Berkus 2013-05-30 17:26:21 Re: Freezing without write I/O
Previous Message Dean Rasheed 2013-05-30 16:52:02 9.3: Empty arrays returned by array_remove()