Re: Proposal: Another attempt at vacuum improvements - Mailing list pgsql-hackers

From Robert Haas
Subject Re: Proposal: Another attempt at vacuum improvements
Date
Msg-id BANLkTi=T=0NLFUDPV22_7cMhQrftr2ekmg@mail.gmail.com
Whole thread Raw
In response to Re: Proposal: Another attempt at vacuum improvements  (Pavan Deolasee <pavan.deolasee@gmail.com>)
List pgsql-hackers
On Thu, May 26, 2011 at 8:57 AM, Pavan Deolasee
<pavan.deolasee@gmail.com> wrote:
> On Thu, May 26, 2011 at 4:10 PM, Pavan Deolasee
> <pavan.deolasee@gmail.com> wrote:
>> On Thu, May 26, 2011 at 9:40 AM, Robert Haas <robertmhaas@gmail.com> wrote:
>>
>>> Currently, I believe the only way a page can get marked all-visible is
>>> by vacuum.  But if we make this change, then it would be possible for
>>> a HOT cleanup to encounter a situation where all-visible could be set.
>>>  We probably want to make that work.
>>>
>>
>> Yes. Thats certainly an option.
>
> BTW, I just realized that this design would expect the visibility map
> to be always correct or at least it should always correctly report a
> page having dead line pointers. We would expect the index vacuum to
> clean  index pointers to *all* dead line pointers because once the
> index vacuum is complete, other backends or next heap vacuum may
> remove any of those old dead line pointers assuming that index vacuum
> would have taken care of the index pointers.
>
> IOW, the visibility map bit must always be clear when there are dead
> line pointers on the page. Do we guarantee that today ? I think we do,
> but the comment in the source file is not affirmative.

It can end up in the wrong state after a crash.  I have a patch to try
to fix that, but I need someone to review it.  (*looks meaningfully at
Heikki, coughs loudly*)

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


pgsql-hackers by date:

Previous
From: Robert Haas
Date:
Subject: Re: Proposal: Another attempt at vacuum improvements
Next
From: Tom Lane
Date:
Subject: Re: Should partial dumps include extensions?