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

From Bruce Momjian
Subject Re: vacuum, performance, and MVCC
Date
Msg-id 200606261245.k5QCjFP04373@momjian.us
Whole thread Raw
In response to Re: vacuum, performance, and MVCC  ("Zeugswetter Andreas DCP SD" <ZeugswetterA@spardat.at>)
List pgsql-hackers
Zeugswetter Andreas DCP SD wrote:
> 
> > > 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 ?

Yes, you have to remove dead (non-visible) parts of the update chain.

--  Bruce Momjian   bruce@momjian.us EnterpriseDB    http://www.enterprisedb.com
 + If your life is a hard drive, Christ can be your backup. +


pgsql-hackers by date:

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