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

From Bruce Momjian
Subject Re: B-tree parent pointer and checkpoints
Date
Msg-id 201109061403.p86E3pF16250@momjian.us
Whole thread Raw
In response to Re: B-tree parent pointer and checkpoints  (Robert Haas <robertmhaas@gmail.com>)
Responses Re: B-tree parent pointer and checkpoints
List pgsql-hackers
Robert Haas wrote:
> On Tue, Sep 6, 2011 at 9:45 AM, Heikki Linnakangas
> <heikki.linnakangas@enterprisedb.com> wrote:
> >> Do you really need to hold the page locks for all that time, or could
> >> you cheat? ?Like... release the locks on the split pages but then go
> >> back and reacquire them to clear the flag...
> >
> > Hmm, there's two issues with that:
> >
> > 1. While you're not holding the locks on the child pages, someone can step
> > onto the page and see that the MISSING_DOWNLINK flag is set, and try to
> > finish the split for you.
> >
> > 2. If you don't hold the page locked while you clear the flag, someone can
> > start and finish a checkpoint after you've inserted the downlink, and before
> > you've cleared the flag. You end up in a scenario where the flag is set, but
> > the page in fact *does* have a downlink in the parent.
> 
> It seems like both of these could be handled by making the code that
> repairs the damage insert the downlink into the parent only if it's
> not already present.

I am sorry to be dumping all these new open issues so late in the 9.1
cycle --- I only now got time to go back over my emails.  Many are from
March and later.

--  Bruce Momjian  <bruce@momjian.us>        http://momjian.us EnterpriseDB
http://enterprisedb.com
 + It's impossible for everything to be true. +


pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: Rectifying wrong Date outputs
Next
From: Bruce Momjian
Date:
Subject: Re: Large C files