postgresql/src
Simon Riggs 6bad580d9e Avoid SnapshotResetXmin() during AtEOXact_Snapshot()
For normal commits and aborts we already reset PgXact->xmin,
so we can simply avoid running SnapshotResetXmin() twice.

During performance tests by Alexander Korotkov, diagnosis
by Andres Freund showed PgXact array as a bottleneck. After
manual analysis by me of the code paths that touch those
memory locations, I was able to identify extraneous code
in the main transaction commit path.

Avoiding touching highly contented shmem improves concurrent
performance slightly on all workloads, confirmed by tests
run by Ashutosh Sharma and Alexander Korotkov.

Simon Riggs

Discussion: CANP8+jJdXE9b+b9F8CQT-LuxxO0PBCB-SZFfMVAdp+akqo4zfg@mail.gmail.com
2017-04-06 08:31:52 -04:00
..
backend Avoid SnapshotResetXmin() during AtEOXact_Snapshot() 2017-04-06 08:31:52 -04:00
bin Collect and use multi-column dependency stats 2017-04-05 18:00:42 -04:00
common Sync pg_dump and pg_dumpall output 2017-03-22 10:20:13 -04:00
fe_utils Allow psql variable substitution to occur in backtick command strings. 2017-04-01 21:44:54 -04:00
include Avoid SnapshotResetXmin() during AtEOXact_Snapshot() 2017-04-06 08:31:52 -04:00
interfaces Fix typo in comment 2017-03-31 09:00:38 +02:00
makefiles Try to fix non-MSVC Windows builds in the wake of logical replication. 2017-01-20 12:51:31 -05:00
pl Capitalize names of PLs consistently 2017-04-05 00:38:25 -04:00
port Fix and simplify check for whether we're running as Windows service. 2017-03-17 11:14:01 +02:00
template Remove "sco" and "unixware" ports. 2016-10-11 11:26:04 -04:00
test Fix integer-overflow problems in interval comparison. 2017-04-05 23:51:27 -04:00
timezone Remove useless duplicate inclusions of system header files. 2017-02-25 16:12:55 -05:00
tools Fix integer-overflow problems in interval comparison. 2017-04-05 23:51:27 -04:00
tutorial Recommend wrappers of PG_DETOAST_DATUM_PACKED(). 2017-03-12 19:35:33 -04:00
.gitignore
DEVELOPERS
Makefile Remove redundant coverage target 2017-02-17 08:56:57 -05:00
Makefile.global.in Remove --verbose from PROVE_FLAGS 2017-04-04 08:42:09 -04:00
Makefile.shlib Fix typos in comments. 2017-02-06 11:33:58 +02:00
bcc32.mak
nls-global.mk nls-global.mk: search build dir for source files, too 2016-06-07 18:55:18 -04:00
win32.mak