Remove the "snapshot too old" feature.
Remove the old_snapshot_threshold setting and mechanism for producing
the error "snapshot too old", originally added by commit 848ef42b.
Unfortunately it had a number of known problems in terms of correctness
and performance, mostly reported by Andres in the course of his work on
snapshot scalability. We agreed to remove it, after a long period
without an active plan to fix it.
This is certainly a desirable feature, and someone might propose a new
or improved implementation in the future.
Reported-by: Andres Freund <andres@anarazel.de>
Discussion: https://postgr.es/m/CACG%3DezYV%2BEvO135fLRdVn-ZusfVsTY6cH1OZqWtezuEYH6ciQA%40mail.gmail.com
Discussion: https://postgr.es/m/20200401064008.qob7bfnnbu4w5cw4%40alap3.anarazel.de
Discussion: https://postgr.es/m/CA%2BTgmoY%3Daqf0zjTD%2B3dUWYkgMiNDegDLFjo%2B6ze%3DWtpik%2B3XqA%40mail.gmail.com
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/f691f5b80a85c66d715b4340ffabb503eb19393e
Modified Files
--------------
contrib/Makefile | 1 -
contrib/bloom/blscan.c | 1 -
contrib/meson.build | 1 -
contrib/old_snapshot/Makefile | 21 -
contrib/old_snapshot/meson.build | 23 -
contrib/old_snapshot/old_snapshot--1.0.sql | 14 -
contrib/old_snapshot/old_snapshot.control | 5 -
contrib/old_snapshot/time_mapping.c | 142 -------
doc/src/sgml/config.sgml | 69 ---
doc/src/sgml/contrib.sgml | 1 -
doc/src/sgml/filelist.sgml | 1 -
doc/src/sgml/oldsnapshot.sgml | 33 --
src/backend/access/brin/brin_revmap.c | 7 -
src/backend/access/gin/ginbtree.c | 2 -
src/backend/access/gin/ginget.c | 4 -
src/backend/access/gist/gistget.c | 1 -
src/backend/access/hash/hashsearch.c | 6 -
src/backend/access/heap/heapam.c | 9 -
src/backend/access/heap/pruneheap.c | 120 +-----
src/backend/access/heap/vacuumlazy.c | 5 +-
src/backend/access/nbtree/nbtsearch.c | 9 -
src/backend/access/spgist/spgscan.c | 1 -
src/backend/catalog/index.c | 28 +-
src/backend/commands/vacuum.c | 19 -
src/backend/storage/buffer/bufmgr.c | 17 -
src/backend/storage/ipc/ipci.c | 2 -
src/backend/storage/ipc/procarray.c | 36 +-
src/backend/storage/lmgr/lwlocknames.txt | 2 +-
src/backend/utils/activity/wait_event_names.txt | 1 -
src/backend/utils/errcodes.txt | 4 -
src/backend/utils/misc/guc_tables.c | 11 -
src/backend/utils/misc/postgresql.conf.sample | 2 -
src/backend/utils/time/snapmgr.c | 468 ---------------------
src/include/access/heapam.h | 2 -
src/include/storage/bufmgr.h | 36 --
src/include/utils/old_snapshot.h | 75 ----
src/include/utils/snapmgr.h | 49 ---
src/test/modules/Makefile | 1 -
src/test/modules/meson.build | 1 -
src/test/modules/snapshot_too_old/.gitignore | 3 -
src/test/modules/snapshot_too_old/Makefile | 28 --
.../snapshot_too_old/expected/sto_using_cursor.out | 19 -
.../expected/sto_using_hash_index.out | 19 -
.../snapshot_too_old/expected/sto_using_select.out | 18 -
src/test/modules/snapshot_too_old/meson.build | 19 -
.../snapshot_too_old/specs/sto_using_cursor.spec | 38 --
.../specs/sto_using_hash_index.spec | 31 --
.../snapshot_too_old/specs/sto_using_select.spec | 37 --
src/test/modules/snapshot_too_old/sto.conf | 2 -
src/tools/pgindent/typedefs.list | 2 -
50 files changed, 21 insertions(+), 1425 deletions(-)