]> granicus.if.org Git - postgresql/commit
Inline initial comparisons in TestForOldSnapshot()
authorKevin Grittner <kgrittn@postgresql.org>
Thu, 21 Apr 2016 13:40:08 +0000 (08:40 -0500)
committerKevin Grittner <kgrittn@postgresql.org>
Thu, 21 Apr 2016 13:40:08 +0000 (08:40 -0500)
commit11e178d0dc4bc2328ae4759090b3c48b07023fab
tree8797b522d97e3b9e7ec89493766ee5e341bd07f3
parent5b1f9ce1d9e8dcae2bcd93b2becffaba5e4f3049
Inline initial comparisons in TestForOldSnapshot()

Even with old_snapshot_threshold = -1 (which disables the "snapshot
too old" feature), performance regressions were seen at moderate to
high concurrency.  For example, a one-socket, four-core system
running 200 connections at saturation could see up to a 2.3%
regression, with larger regressions possible on NUMA machines.
By inlining the early (smaller, faster) tests in the
TestForOldSnapshot() function, the i7 case dropped to a 0.2%
regression, which could easily just be noise, and is clearly an
improvement.  Further testing will show whether more is needed.
src/backend/storage/buffer/bufmgr.c
src/include/storage/bufmgr.h