View Single Post

   
  #8 (permalink)  
Old 04-29-2008, 08:32 PM
Tom Lane
 
Posts: n/a
Default Re: Re: [HACKERS] [COMMITTERS] pgsql: Fix TransactionIdIsCurrentTransactionId() to use binary search

Robert Treat <xzilla@users.sourceforge.net> writes:
> On Saturday 26 April 2008 13:26, Tom Lane wrote:
>> Oh, you failed to state that the dtrace output was post-patch. You need
>> to show *pre* patch dtrace output if you want us to think it relevant.


> Please read up-thread.


Sorry, I'd forgotten your previous post.

I poked around for calls to TransactionIdIsCurrentTransactionId that
are in current code and weren't in 8.1. I found these:

src/backend/commands/analyze.c: 965: if (TransactionIdIsCurrentTransactionId(HeapTupleHead erGetXmin(targtuple.t_data)))
src/backend/commands/analyze.c: 984: if (TransactionIdIsCurrentTransactionId(HeapTupleHead erGetXmax(targtuple.t_data)))
src/backend/commands/cluster.c: 803: if (!TransactionIdIsCurrentTransactionId(
src/backend/commands/cluster.c: 816: if (!TransactionIdIsCurrentTransactionId(
src/backend/storage/ipc/procarray.c: 374: if (TransactionIdIsCurrentTransactionId(xid))
src/backend/utils/time/combocid.c: 108: Assert(TransactionIdIsCurrentTransactionId(HeapTup leHeaderGetXmin(tup)));
src/backend/utils/time/combocid.c: 123: Assert(TransactionIdIsCurrentTransactionId(HeapTup leHeaderGetXmax(tup)));
src/backend/utils/time/combocid.c: 156: TransactionIdIsCurrentTransactionId(HeapTupleHeade rGetXmin(tup)))

The ANALYZE and CLUSTER calls are not likely to be your issue, but the
one in HeapTupleHeaderAdjustCmax could get called a lot, and the one
in TransactionIdIsInProgress definitely will get called a lot.
Neither of those calls existed in 8.2.

So I think that explains why TransactionIdIsCurrentTransactionId has
become more performance-critical in 8.3 than it was before. Will
apply the back-patch.

regards, tom lane

--
Sent via pgsql-performance mailing list (pgsql-performance@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-performance

Reply With Quote