Ühel kenal päeval, N, 2006-03-02 kell 09:53, kirjutas Zeugswetter
Andreas DCP SD:
> > I thought we had sufficiently destroyed that "reuse a tuple"
> > meme yesterday. You can't do that: there are too many
> > aspects of the system design that are predicated on the
> > assumption that dead tuples do not come back to life. You
> > have to do the full vacuuming bit (index entry removal,
> > super-exclusive page locking, etc) before you can remove a dead tuple.
>
> One more idea I would like to throw in.
> Ok, we cannot reuse a dead tuple. Maybe we can reuse the space of a dead
> tuple by reducing the tuple to it's header info.
> (If you still wanted to be able to locate index entries fast,
> you would need to keep indexed columns, but I think we agreed that there
> is
> no real use)
I don't even think you need the header, just truncate the slot to be
0-size (the next pointer is the same as this one or make the pointer
point to unaligned byte or smth) and detect this condition when
accessing tuples. this would add on compare to all accesse to the tuple,
but I suspect that mostly it is a noop performance-wise as all data
needed is already available in level1 cache.
This would decouple declaring a tuple to be dead/reuse data space and
final cleanup/free index space.
--------------------
Hannu