From: | Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
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 16:44:33 |
Message-ID: | 4D7A5171.8000603@enterprisedb.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 11.03.2011 17:59, Tom Lane wrote:
> Heikki Linnakangas<heikki(dot)linnakangas(at)enterprisedb(dot)com> writes:
>> On 10.03.2011 22:50, Bruce Momjian wrote:
>>> Bruce Momjian wrote:
>>
>> Has this been addressed?
>>>
>>> I see we have with this commit:
>>>
>>> 9de3aa65f01fb51cbc725e8508ea233e4e92c46c
>
>> We fixed GiST. B-tree still has the issue that if you have a checkpoint
>> in the middle of an insert, and crash, you might be left with a leaf
>> node without a downlink in the parent.
>
> 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.
--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com
From | Date | Subject | |
---|---|---|---|
Next Message | Robert Haas | 2011-03-11 16:45:50 | Re: multiple -f support |
Previous Message | Dave Page | 2011-03-11 16:43:10 | Re: Flex output missing from 9.1a4 tarballs? |