Thread: pgsql: Remove the "snapshot too old" feature.

pgsql: Remove the "snapshot too old" feature.

From
Thomas Munro
Date:
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(-)