Re: Open 7.3 items: heap tuple header - Mailing list pgsql-hackers

From Bruce Momjian
Subject Re: Open 7.3 items: heap tuple header
Date
Msg-id 200208161625.g7GGPci21690@candle.pha.pa.us
Whole thread Raw
In response to Re: Open 7.3 items: heap tuple header  (Manfred Koizar <mkoi-pg@aon.at>)
Responses Re: Open 7.3 items: heap tuple header
List pgsql-hackers
Manfred Koizar wrote:
> On Fri, 16 Aug 2002 01:05:07 -0400 (EDT), Bruce Momjian
> <pgman@candle.pha.pa.us> wrote:
> >
> >                              P O S T G R E S Q L
> >
> >                          7 . 3  O P E N    I T E M S
> >
> >improve macros in new tuple header code (Manfred)
> 
> ISTM there's no consensus about what "improve" means.  I tried to
> start discussing this after my vacation, but apparently people had
> better things to do.

OK.

> On Wed, 07 Aug 2002 16:16:14 +0200, I wrote ("Heap tuple header
> issues"):
> :.  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?
> 
> However, I don't think this would lead to any measurable difference.

Yep.

> :.  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.
> 
> This is the main point of disagreement:  Tom Lane wants lighter
> macros, I want heavier macros.  Which direction shall we go?

Could you or Tom explain that in a way that others could understand.

My guess is that you want the sanity checks in the macros, and Tom wants
more of them in the main code?

> :Further, I'll try to build a regression test using statement timeout
> :to detect runaway INSERT/UPDATE (the so called "halloween" problem).
> 
> This won't hurt anyway.  I'll start working on this.
> 
> BTW, my changes have been criticized with words like "vague unease",
> "zero confidence", "very obviously not robust", "do not trust the
> current code at all" etc., while from day one all my patches have
> passed all regression tests.

I totally agree with you here.  You code has been great, and it did
something (reduce tuple size) that no one else thought possible.

>  This makes me wonder whether there is
> something wrong with the regression tests ...

However, I should add that the regression tests test only a small subset
of how the database has to operate.  There are so many bizarre
conditions that we can't test them all.

--  Bruce Momjian                        |  http://candle.pha.pa.us pgman@candle.pha.pa.us               |  (610)
359-1001+  If your life is a hard drive,     |  13 Roberts Road +  Christ can be your backup.        |  Newtown Square,
Pennsylvania19073
 


pgsql-hackers by date:

Previous
From: Manfred Koizar
Date:
Subject: Re: Open 7.3 items: heap tuple header
Next
From: Tom Lane
Date:
Subject: Re: Admin nice-to-have's