pgsql: snapshot scalability: Move delayChkpt from PGXACT to PGPROC.

From: Andres Freund <andres(at)anarazel(dot)de>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: snapshot scalability: Move delayChkpt from PGXACT to PGPROC.
Date: 2020-04-08 00:36:57
Message-ID: E1jLyi9-0002bX-4I@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

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

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/75848bc74411130ede23995d0ab1aefb12c4c4b0

Modified Files
--------------
src/backend/access/transam/multixact.c | 6 +++---
src/backend/access/transam/twophase.c | 10 +++++-----
src/backend/access/transam/xact.c | 4 ++--
src/backend/access/transam/xloginsert.c | 2 +-
src/backend/storage/buffer/bufmgr.c | 4 ++--
src/backend/storage/ipc/procarray.c | 14 ++++++--------
src/backend/storage/lmgr/proc.c | 4 ++--
src/include/storage/proc.h | 4 ++--
8 files changed, 23 insertions(+), 25 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Amit Kapila 2020-04-08 00:37:23 Re: pgsql: Implement waiting for given lsn at transaction start
Previous Message Tomas Vondra 2020-04-08 00:17:00 pgsql: Track SLRU page hits in SimpleLruReadPage_ReadOnly