• Simon Riggs's avatar
    Avoid SnapshotResetXmin() during AtEOXact_Snapshot() · 6bad580d
    Simon Riggs authored
    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
    6bad580d
xact.c 157 KB