Re: B-tree parent pointer and checkpoints - Mailing list pgsql-hackers

From Heikki Linnakangas
Subject Re: B-tree parent pointer and checkpoints
Date
Msg-id 4D7A609F.5070008@enterprisedb.com
Whole thread Raw
In response to Re: B-tree parent pointer and checkpoints  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: B-tree parent pointer and checkpoints
Re: B-tree parent pointer and checkpoints
List pgsql-hackers
On 11.03.2011 19:41, Tom Lane wrote:
> Heikki Linnakangas<heikki.linnakangas@enterprisedb.com>  writes:
>> On 11.03.2011 17:59, Tom Lane wrote:
>>> But that will be fixed during WAL replay.
>
>> Not under the circumstances that started the original thread:
>
>> 1. Backend splits a page
>> 2. Checkpoint starts
>> 3. Checkpoint runs to completion
>> 4. Crash
>> (5. Backend never got to insert the parent pointer)
>
>> WAL replay starts at the checkpoint redo pointer, which is after the
>> page split record, so WAL replay won't insert the parent pointer. That's
>> an incredibly tight window to hit in practice, but it's possible in theory.
>
> Hmm.  It's not so improbable that checkpoint would start inside that
> window, but that the parent insertion is still pending by the time the
> checkpoint finishes is pretty improbable.
>
> How about just reducing the deletion-time ERROR for missing downlink to a LOG?

Well, the code that follows expects to have a valid parent page locked, 
so you can't literally do just that. But yeah, LOG and aborting the page 
deletion seems fine to me.

--   Heikki Linnakangas  EnterpriseDB   http://www.enterprisedb.com


pgsql-hackers by date:

Previous
From: Christopher Browne
Date:
Subject: Re: Range Types: << >> -|- ops vs empty range
Next
From: Bruce Momjian
Date:
Subject: Macros for time magic values