Revert "Add single-item cache when looking at topmost XID of a subtrans XID"
authorMichael Paquier <michael@paquier.xyz>
Sat, 28 May 2022 06:02:08 +0000 (15:02 +0900)
committerMichael Paquier <michael@paquier.xyz>
Sat, 28 May 2022 06:02:08 +0000 (15:02 +0900)
commitb4529005fd387e863bfa9eb863629b1183c0449c
treed03c39b02b05a4234b421b202692048ceaa6feb9
parentf1431f3bffa00962ae8debb98a750ed2fb09fa3b
Revert "Add single-item cache when looking at topmost XID of a subtrans XID"

This reverts commit 06f5295 as per issues with this approach, both in
terms of efficiency impact and stability.  First, contrary to the
single-item cache for transaction IDs in transam.c, the cache may finish
by not be hit for a long time, and without an invalidation mechanism to
clear it, it would cause inconsistent results on wraparound for
example.  Second, the use of SubTransGetTopmostTransaction() for the
caching has a limited impact on performance.  SubTransGetParent() could
have more impact, though the benchmarking of the single-item approach
still needs to be proved, particularly under the conditions where SLRU
lookups are stressed in parallel with overflowed snapshots (aka more
than 64 subxids generated, for example).

After discussion with Andres Freund.

Discussion: https://postgr.es/m/20220524235250.gtt3uu5zktfkr4hv@alap3.anarazel.de
src/backend/access/transam/subtrans.c