Optimize memory access in GetRunningTransactionData()

Alexander Korotkov <akorotkov@postgresql.org>

Commit: 6897f0ec024582a570868939d3f34a6853374723
Author: Alexander Korotkov <akorotkov@postgresql.org>
Date: 2024-07-03T23:05:37Z
Releases: 18.0
Optimize memory access in GetRunningTransactionData()

e85662df44 made GetRunningTransactionData() calculate the oldest running
transaction id within the current database.  This commit optimized this
calculation by performing a cheap transaction id comparison before fetching
the process database id, while the latter could cause extra cache misses.

Reported-by: Noah Misch
Discussion: https://postgr.es/m/20240630231816.bf.nmisch%40google.com

Files

PathChange+/−
src/backend/storage/ipc/procarray.c modified +11 −6

Discussion