mirror of
https://github.com/postgres/postgres.git
synced 2025-07-28 23:42:10 +03:00
snapshot scalability: Move PGXACT->vacuumFlags to ProcGlobal->vacuumFlags.
Similar to the previous commit this increases the chance that data frequently needed by GetSnapshotData() stays in l2 cache. As we now take care to not unnecessarily write to ProcGlobal->vacuumFlags, there should be very few modifications to the ProcGlobal->vacuumFlags array. Author: Andres Freund <andres@anarazel.de> Reviewed-By: Robert Haas <robertmhaas@gmail.com> Reviewed-By: Thomas Munro <thomas.munro@gmail.com> Reviewed-By: David Rowley <dgrowleyml@gmail.com> Discussion: https://postgr.es/m/20200301083601.ews6hz5dduc3w2se@alap3.anarazel.de
This commit is contained in:
@ -1728,9 +1728,10 @@ vacuum_rel(Oid relid, RangeVar *relation, VacuumParams *params)
|
||||
* might appear to go backwards, which is probably Not Good.
|
||||
*/
|
||||
LWLockAcquire(ProcArrayLock, LW_EXCLUSIVE);
|
||||
MyPgXact->vacuumFlags |= PROC_IN_VACUUM;
|
||||
MyProc->vacuumFlags |= PROC_IN_VACUUM;
|
||||
if (params->is_wraparound)
|
||||
MyPgXact->vacuumFlags |= PROC_VACUUM_FOR_WRAPAROUND;
|
||||
MyProc->vacuumFlags |= PROC_VACUUM_FOR_WRAPAROUND;
|
||||
ProcGlobal->vacuumFlags[MyProc->pgxactoff] = MyProc->vacuumFlags;
|
||||
LWLockRelease(ProcArrayLock);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user