[COMMITTERS] pgsql: Use group updates when setting transaction status in clog. - Mailing list pgsql-committers

From Robert Haas
Subject [COMMITTERS] pgsql: Use group updates when setting transaction status in clog.
Date
Msg-id E1cm6s7-0004Zc-H8@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Use group updates when setting transaction status in clog.

Commit 0e141c0fbb211bdd23783afa731e3eef95c9ad7a introduced a mechanism
to reduce contention on ProcArrayLock by having a single process clear
XIDs in the procArray on behalf of multiple processes, reducing the
need to hand the lock around.  Use a similar mechanism to reduce
contention on CLogControlLock.  Testing shows that this very
significantly reduces the amount of time waiting for CLogControlLock
on high-concurrency pgbench tests run on a large multi-socket
machines; whether that translates into a TPS improvement depends on
how much of that contention is simply shifted to some other lock,
particularly WALWriteLock.

Amit Kapila, with some cosmetic changes by me.  Extensively reviewed,
tested, and benchmarked over a period of about 15 months by Simon
Riggs, Robert Haas, Andres Freund, Jesper Pedersen, and especially by
Tomas Vondra and Dilip Kumar.

Discussion: http://postgr.es/m/CAA4eK1L_snxM_JcrzEstNq9P66++F4kKFce=1r5+D1vzPofdtg@mail.gmail.com
Discussion: http://postgr.es/m/CAA4eK1LyR2A+m=RBSZ6rcPEwJ=rVi1ADPSndXHZdjn56yqO6Vg@mail.gmail.com
Discussion: http://postgr.es/m/91d57161-d3ea-0cc2-6066-80713e4f90d7@2ndquadrant.com

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/ccce90b398673d55b0387b3de66639b1b30d451b

Modified Files
--------------
src/backend/access/transam/clog.c     | 239 ++++++++++++++++++++++++++++++++--
src/backend/access/transam/twophase.c |   2 +-
src/backend/storage/lmgr/proc.c       |   9 ++
src/include/access/twophase.h         |  13 ++
src/include/storage/proc.h            |  14 ++
5 files changed, 268 insertions(+), 9 deletions(-)


pgsql-committers by date:

Previous
From: Tom Lane
Date:
Subject: [COMMITTERS] pgsql: Fix timestamptz regression test to still work with latest IANAz
Next
From: Robert Haas
Date:
Subject: [COMMITTERS] pgsql: Throw an error if a DATA() line contains wrong # of attributes.