Add predicate locking for GiST

Enterprise / PostgreSQL - Teodor Sigaev [sigaev.ru] - 27 March 2018 12:43 EDT

Add page-level predicate locking, due to gist's code organization, patch seems close to trivial: add check before page changing, add predicate lock before page scanning. Although choosing right place to check is not simple: it should not be called during index build, it should support insertion of new downlink and so on.

Author: Shubham Barai with editorization by me and Alexander Korotkov Reviewed by: Alexander Korotkov, Andrey Borodin, me Discussion: https://www.postgresql.org/message-id/flat/CALxAEPtdcANpw5ePU3LvnTP8HCENFw6wygupQAyNBgD-sG3h0g@mail.gmail.com

3ad55863e9 Add predicate locking for GiST
src/backend/access/gist/gist.c | 13 +-
src/backend/access/gist/gistget.c | 3 +
src/backend/storage/lmgr/README-SSI | 5 +-
src/test/isolation/expected/predicate-gist.out | 659 +++++++++++++++++++++++++
src/test/isolation/isolation_schedule | 1 +
src/test/isolation/specs/predicate-gist.spec | 117 +++++
6 files changed, 795 insertions(+), 3 deletions(-)

Upstream: git.postgresql.org


  • Share