postgresql/src/backend
Andres Freund 75848bc744 snapshot scalability: Move delayChkpt from PGXACT to PGPROC.
The goal of separating hotly accessed per-backend data from PGPROC
into PGXACT is to make accesses fast (GetSnapshotData() in
particular). But delayChkpt is not actually accessed frequently; only
when starting a checkpoint. As it is frequently modified (multiple
times in the course of a single transaction), storing it in the same
cacheline as hotly accessed data unnecessarily dirties a contended
cacheline.

Therefore move delayChkpt to PGPROC.

This is part of a larger series of patches intending to improve
GetSnapshotData() scalability. It is committed and pushed separately,
as it is independently beneficial (small but measurable win, limited
by the other frequent modifications of PGXACT).

Author: Andres Freund
Reviewed-By: Robert Haas, Thomas Munro, David Rowley
Discussion: https://postgr.es/m/20200301083601.ews6hz5dduc3w2se@alap3.anarazel.de
2020-04-07 17:36:23 -07:00
..
access snapshot scalability: Move delayChkpt from PGXACT to PGPROC. 2020-04-07 17:36:23 -07:00
bootstrap Skip WAL for new relfilenodes, under wal_level=minimal. 2020-04-04 12:25:34 -07:00
catalog Allow users to limit storage reserved by replication slots 2020-04-07 18:35:00 -04:00
commands Implement waiting for given lsn at transaction start 2020-04-07 23:51:10 +03:00
executor Support FETCH FIRST WITH TIES 2020-04-07 16:22:13 -04:00
foreign
jit
lib
libpq Provide a TLS init hook 2020-03-25 17:13:17 -04:00
main
nodes Implement waiting for given lsn at transaction start 2020-04-07 23:51:10 +03:00
optimizer Support FETCH FIRST WITH TIES 2020-04-07 16:22:13 -04:00
parser Implement waiting for given lsn at transaction start 2020-04-07 23:51:10 +03:00
partitioning Add object names to partition integrity violations. 2020-03-23 08:09:15 +05:30
po
port
postmaster Remove debugging elog from pgstat_recv_resetslrucounter 2020-04-07 19:20:20 +02:00
regex
replication Allow users to limit storage reserved by replication slots 2020-04-07 18:35:00 -04:00
rewrite Fix INSERT OVERRIDING USER VALUE behavior 2020-03-31 08:50:39 +02:00
snowball
statistics Fix race condition in statext_store(). 2020-03-31 17:06:22 -04:00
storage snapshot scalability: Move delayChkpt from PGXACT to PGPROC. 2020-04-07 17:36:23 -07:00
tcop Implement waiting for given lsn at transaction start 2020-04-07 23:51:10 +03:00
tsearch Remove useless pfree()s at the ends of various ValuePerCall SRFs. 2020-03-16 21:36:53 -04:00
utils Allow users to limit storage reserved by replication slots 2020-04-07 18:35:00 -04:00
.gitignore
common.mk
Makefile
nls.mk