Predicate locking in hash indexes.
authorTeodor Sigaev <teodor@sigaev.ru>
Sat, 7 Apr 2018 13:59:14 +0000 (16:59 +0300)
committerTeodor Sigaev <teodor@sigaev.ru>
Sat, 7 Apr 2018 13:59:14 +0000 (16:59 +0300)
commitb508a56f2f3a2d850e75a14661943d6b4dde8274
tree1c8e5b683669f19cf27606f472628fb162421bdd
parent971d7ddbe19ad9525457e65d01b8b6504ab57cc4
Predicate locking in hash indexes.

Hash index searches acquire predicate locks on the primary
page of a bucket. It acquires a lock on both the old and new buckets
for scans that happen concurrently with page splits. During a bucket
split, a predicate lock is copied from the primary page of an old
bucket to the primary page of a new bucket.

Author: Shubham Barai, Amit Kapila
Reviewed by: Amit Kapila, Alexander Korotkov, Thomas Munro
Discussion: https://www.postgresql.org/message-id/flat/CALxAEPvNsM2GTiXdRgaaZ1Pjd1bs+sxfFsf7Ytr+iq+5JJoYXA@mail.gmail.com
src/backend/access/hash/hash.c
src/backend/access/hash/hashinsert.c
src/backend/access/hash/hashpage.c
src/backend/access/hash/hashsearch.c
src/backend/storage/lmgr/README-SSI
src/test/isolation/expected/predicate-hash.out [new file with mode: 0644]
src/test/isolation/isolation_schedule
src/test/isolation/specs/predicate-hash.spec [new file with mode: 0644]