pgsql: Remove entry tree root conflict checking from GIN predicate lock

From: Alexander Korotkov <akorotkov(at)postgresql(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Remove entry tree root conflict checking from GIN predicate lock
Date: 2018-12-27 01:25:17
Message-ID: E1gcKQH-0005KS-I1@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Remove entry tree root conflict checking from GIN predicate locking

According to README we acquire predicate locks on entry tree leafs and posting
tree roots. However, when ginFindLeafPage() is going to lock leaf in exclusive
mode, then it checks root for conflicts regardless whether it's a entry or
posting tree. Assuming that we never place predicate lock on entry tree root
(excluding corner case when root is leaf), this check is redundant. This
commit removes this check. Now, root conflict checking is controlled by
separate argument of ginFindLeafPage().

Discussion: https://postgr.es/m/CAPpHfdv7rrDyy%3DMgsaK-L9kk0AH7az0B-mdC3w3p0FSb9uoyEg%40mail.gmail.com
Author: Alexander Korotkov
Backpatch-through: 11

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/b450abd2551ee30b5bc289c662f5728d87e13a39

Modified Files
--------------
src/backend/access/gin/ginbtree.c | 8 ++++++--
src/backend/access/gin/gindatapage.c | 4 ++--
src/backend/access/gin/ginget.c | 4 ++--
src/backend/access/gin/gininsert.c | 2 +-
src/include/access/gin_private.h | 3 ++-
5 files changed, 13 insertions(+), 8 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Alexander Korotkov 2018-12-27 01:25:23 pgsql: Remove entry tree root conflict checking from GIN predicate lock
Previous Message Michael Paquier 2018-12-27 01:19:54 pgsql: Ignore inherited temp relations from other sessions when truncat