Heap tuple header issues - Mailing list pgsql-hackers

From Manfred Koizar
Subject Heap tuple header issues
Date
Msg-id k522luor477qjv8mon72v6701dcnf80l6q@4ax.com
Whole thread Raw
List pgsql-hackers
On Mon, 05 Aug 2002 10:06:37 -0400, Tom Lane <tgl@sss.pgh.pa.us>
wrote:
>I've refrained from touching the tuple-header issues until Manfred
>returns from vacation and can defend himself ;-)
En garde!  Seriously, I don't think I have to defend *myself*, because
I'm not going to be attacked personally.  I'm ready to discuss,
defend, and/or drop my work ...

.  Transaction and command ids, performance

I offered to provide cheaper versions of GetCmin and GetCmax to be
used by the tqual routines.  These version would reduce additional CPU
work from two infomask compares to one.  Is this still considered an
issue?

.  Transaction and command ids, robustness

I'm still of the opinion that putting *more* knowledge into the SetXxx
macros is the way to go.  The runaway INSERT bug could as well have
been fixed by changing SetCmax to do nothing, if HEAP_XMAX_INVALID is
set, and changing SetXmaxInvalid to set HEAP_XMAX_INVALID.  Likewise I
would change SetXmax to set HEAP_XMAX_INVALID, if xid ==
InvalidTransactionId, or reset it, if != (not sure about this).  Same
for SetXminInvalid and SetXmin.

Further, I'll try to build a regression test using statement timeout
to detect runaway INSERT/UPDATE (the so called "halloween" problem).

.  Oids

I was a bit surprised that these patches went in so smoothly,  must be
due to the fact that there was a lot of work to do at that time.
Personnally I feel that these changes are more dangerous than the
Xmin/Cid/Xmax patches;  and I ask the hackers to review especially
part 2, which contains changes to the executor and even to bootstrap.

.  Oids, t_infomask

There has been no comment from a tool developer.

.  Oids, heap_getsysattr

We thought that a TupleDesc parameter would have to be added for this
function.  However, tests showed that heap_getsysattr is not called to
get the oid, when the tuple doesn't have an oid: "ERROR:  Attribute
'oid' not found".

.  Oids, micro tuning

There are a few places, where storing an oid in a local variable might
be a little faster than fetching it several times from a heap tuple
header.

.  Overall performance

If Joe Conway can be talked into running OSDB benchmarks with old and
new heap tuple header format, I'll provide patches and instructions to
easily switch between versions.  Or, Joe, can you tell me, what I need
to have and need to do to set up a benchmarking environment?

.  CVS

There have been a lot of "CVS broken" messages in the past few days.
When I tried cvs -z3 log heapam.c
I got
| cvs server: failed to create lock directory for `/projects/cvsroot/pgsql/src/backend/access/heap'
(/projects/cvsroot/pgsql/src/backend/access/heap/#cvs.lock):No such file or directory
 
| cvs server: failed to obtain dir lock in repository `/projects/cvsroot/pgsql/src/backend/access/heap'
| cvs [server aborted]: read lock failed - giving up

Is this a temporary problem or did a miss any planned changes?

ServusManfred


pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Open 7.3 items
Next
From: Hannu Krosing
Date:
Subject: Re: CLUSTER and indisclustered