From: | Robert Haas <rhaas(at)postgresql(dot)org> |
---|---|
To: | pgsql-committers(at)postgresql(dot)org |
Subject: | pgsql: Use group updates when setting transaction status in clog. |
Date: | 2017-03-09 22:49:23 |
Message-ID: | E1cm6s7-0004Zc-H8@gemulon.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 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(-)
From | Date | Subject | |
---|---|---|---|
Next Message | Robert Haas | 2017-03-09 23:20:47 | pgsql: Throw an error if a DATA() line contains wrong # of attributes. |
Previous Message | Tom Lane | 2017-03-09 22:20:43 | pgsql: Fix timestamptz regression test to still work with latest IANA z |