Re: TransactionIdIsInProgress() cache - Mailing list pgsql-patches

From Tom Lane
Subject Re: TransactionIdIsInProgress() cache
Date
Msg-id 5338.1205267329@sss.pgh.pa.us
Whole thread Raw
In response to TransactionIdIsInProgress() cache  (Simon Riggs <simon@2ndquadrant.com>)
List pgsql-patches
Simon Riggs <simon@2ndquadrant.com> writes:
> We currently have a single item cache of the last checked TransactionId,
> which optimises the call to TransactionIdDidCommit() during
> HeapTupleSatisfiesMVCC() and partners.

> Before we call TransactionIdDidCommit() we always call
> TransactionIdIsInProgress().

> TransactionIdIsInProgress() doesn't check the single item cache, so even
> if we have just checked for this xid, we will check it again. Since this
> function takes ProcArrayLock and may be called while holding other locks
> it will improve scalability if we can skip the call, for the cost of an
> integer comparison.

> Following patch implements fastpath in TransactionIdIsInProgress() to
> utilise single item cache.

Applied with minor adjustments and some desultory comment-improvement.

            regards, tom lane

pgsql-patches by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: trace_checkpoint parameter patch
Next
From: Tom Lane
Date:
Subject: Re: [PERFORM] Very slow (2 tuples/second) sequential scan after bulk insert; speed returns to ~500 tuples/second after commit