From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com> |
Cc: | Bruce Momjian <bruce(at)momjian(dot)us>, Greg Stark <gsstark(at)mit(dot)edu>, Teodor Sigaev <teodor(at)sigaev(dot)ru>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>, Oleg Bartunov <oleg(at)sai(dot)msu(dot)su> |
Subject: | Re: B-tree parent pointer and checkpoints |
Date: | 2011-03-11 17:41:09 |
Message-ID: | 22501.1299865269@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)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?
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Christopher Browne | 2011-03-11 17:48:14 | Re: Range Types: << >> -|- ops vs empty range |
Previous Message | Jeff Davis | 2011-03-11 17:37:06 | Re: Range Types: << >> -|- ops vs empty range |