• Andres Freund's avatar
    snapshot scalability: Move delayChkpt from PGXACT to PGPROC. · 75848bc7
    Andres Freund authored
    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
    75848bc7
bufmgr.c 128 KB