Re: Re: [COMMITTERS] pgsql: Augment WAL records for btree delete with GetOldestXmin() to - Mailing list pgsql-hackers

From Tom Lane
Subject Re: Re: [COMMITTERS] pgsql: Augment WAL records for btree delete with GetOldestXmin() to
Date
Msg-id 19877.1269634581@sss.pgh.pa.us
Whole thread Raw
In response to Re: Re: [COMMITTERS] pgsql: Augment WAL records for btree delete with GetOldestXmin() to  (Simon Riggs <simon@2ndQuadrant.com>)
Responses Re: Re: [COMMITTERS] pgsql: Augment WAL records for btree delete with GetOldestXmin() to
List pgsql-hackers
Simon Riggs <simon@2ndQuadrant.com> writes:
> On Sun, 2010-01-31 at 23:43 +0200, Heikki Linnakangas wrote:
>> When replaying the deletion record, the standby could look at all the
>> heap tuples whose index pointers are being removed, to see which one
>> was newest.

> Long after coding this, I now realise this really is a dumb-ass idea.

> There is no spoon. The index tuples did once point at valid heap tuples.
> 1. heap tuples are deleted
> 2. heap tuples become dead
> 3. index tuples can now be marked killed
> 4. index tuples removed
> Heap tuples can be removed at step 2, index tuples can't be removed
> until step 4.

Uh, no, heap tuples can't be removed until after all index entries that
are pointing at them have been removed.  Please tell me you have not
broken this.

> So, barring huge injections of insight, I'll be putting back the
> generation of OldestXmin() into the btree delete path.

I stand by my previous comments about where this is going to end up.
        regards, tom lane


pgsql-hackers by date:

Previous
From: Simon Riggs
Date:
Subject: Re: Re: [COMMITTERS] pgsql: Augment WAL records for btree delete with GetOldestXmin() to
Next
From: Gokulakannan Somasundaram
Date:
Subject: Performance improvement for unique checks