Re: vacuum, performance, and MVCC - Mailing list pgsql-hackers

From Zeugswetter Andreas DCP SD
Subject Re: vacuum, performance, and MVCC
Date
Msg-id E1539E0ED7043848906A8FF995BDA579011F003A@m0143.s-mxs.net
Whole thread Raw
In response to Re: vacuum, performance, and MVCC  (Alvaro Herrera <alvherre@commandprompt.com>)
Responses Re: vacuum, performance, and MVCC  (Bruce Momjian <bruce@momjian.us>)
List pgsql-hackers
> > On 6/25/2006 10:12 PM, Bruce Momjian wrote:
> > >When you are using the update chaining, you can't mark that index
row
> > >as dead because it actually points to more than one row on the
page,
> > >some are non-visible, some are visible.
> >
> > Back up the truck ... you mean in the current code base we have heap

> > tuples that are visible in index scans because of heap tuple
chaining
> > but without index tuples pointing directly at them?
>
> I don't know where this idea came from, but it's not true.
> All heap tuples, dead or otherwise, have index entries.

When using CITC you would be "reusing" the index tuples from the current
heap tuple, so you can only reuse free space or a dead member of a CITC
chain.
You cannot reuse a dead tuple not member of a CITC chain because that
has separate
(invalid) index tuples pointing at it.

Part of the trick was moving slots (==ctid) around, so I still do not
really see how
you can represent the CITC chain as part of the update chain.
Unless you intend to break dead parts of the update chain ? Maybe that
is ok ?

Andreas


pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: vacuum, performance, and MVCC
Next
From: Martijn van Oosterhout
Date:
Subject: Re: libpq Describe Extension [WAS: Bytea and perl]