At 2013-07-12 16:25:14 -0700, jeff.ja...@gmail.com wrote:
>
> I think the reviewer of a performance patch should do some independent
> testing of the performance, to replicate the author's numbers; and
> hopefully with a few different scenarios.

You're quite right. I apologise for being lazy; doubly so because I
can't actually see any difference while running the test case with
the patches applied.

unpatched:
    before: 1629.831391, 1559.793758, 1498.765018, 1639.384038
    during:   37.434492,   37.044989,   37.112422,   36.950895
    after :   46.591688,   46.341256,   46.042169,   46.260684

patched:
    before: 1813.091975, 1798.923524, 1629.301356, 1606.849033
    during:   37.344987,   37.207359,   37.406788,   37.316925
    after :   46.657747,   46.537420,   46.746377,   46.577052

("before" is before starting session 2; "during" is after session 2
inserts, but before it commits; "after" is after session 2 issues a
rollback.)

The timings above are with both xid_in_snapshot_cache.v1.patch and
cache_TransactionIdInProgress.v2.patch applied, but the numbers are
not noticeably different with only the first patch applied. After I
"vacuum plan", the timings in both cases return to normal.

In a quick test with gdb (and also in perf report output), I didn't see
the following block in procarray.c being entered at all:

+       if (max_prepared_xacts == 0 && pgprocno >= 0 &&
+               (TransactionIdEquals(xid, pxid) || TransactionIdEquals(xid, 
cxid)))
+       {
        …

I'll keep looking, but comments are welcome. I'm setting this back to
"Needs Review" in the meantime.

-- Abhijit


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

Reply via email to