Go back to considering HOT on pages marked full.
authorPeter Geoghegan <pg@bowt.ie>
Fri, 26 Nov 2021 18:58:38 +0000 (10:58 -0800)
committerPeter Geoghegan <pg@bowt.ie>
Fri, 26 Nov 2021 18:58:38 +0000 (10:58 -0800)
commit1a6f5a0e876306293fda697e7820b404d5b93693
tree661672ac1f0da7561aa9a63bfdfb39c824c529af
parentdd484c97f55be8336fcb41470768c5b8ae347d13
Go back to considering HOT on pages marked full.

Commit 2fd8685e7f simplified the checking of modified attributes that
takes place within heap_update().  This included a micro-optimization
affecting pages marked PD_PAGE_FULL: don't even try to use HOT to save a
few cycles on determining HOT safety.  The assumption was that it won't
work out this time around, since it can't have worked out last time
around.

Remove the micro-optimization.  It could only ever save cycles that are
consumed by the vast majority of heap_update() calls, which hardly seems
worth the added complexity.  It also seems quite possible that there are
workloads that will do worse over time by repeated application of the
micro-optimization, despite saving some cycles on average, in the short
term.

Author: Peter Geoghegan <pg@bowt.ie>
Reviewed-By: Álvaro Herrera <alvherre@alvh.no-ip.org>
Discussion: https://postgr.es/m/CAH2-WznU1L3+DMPr1F7o2eJBT7=3bAJoY6ZkWABAxNt+-afyTA@mail.gmail.com
src/backend/access/heap/heapam.c