Allow page lock to conflict among parallel group members.
authorAmit Kapila <akapila@postgresql.org>
Sat, 21 Mar 2020 03:18:06 +0000 (08:48 +0530)
committerAmit Kapila <akapila@postgresql.org>
Sat, 21 Mar 2020 03:18:06 +0000 (08:48 +0530)
commit3ba59ccc896e8877e2fbfb8d4f148904cad5f9b0
tree6403763e7c7e519113b8a43797cbe7e779f840d2
parenta6d7e9fb2816fcd23e5d1e95a52448eb9acf7f6e
Allow page lock to conflict among parallel group members.

This is required as it is no safer for two related processes to perform
clean up in gin indexes at a time than for unrelated processes to do the
same.  After acquiring page locks, we can acquire relation extension lock
but reverse never happens which means these will also not participate in
deadlock.  So, avoid checking wait edges from this lock.

Currently, the parallel mode is strictly read-only, but after this patch
we have the infrastructure to allow parallel inserts and parallel copy.

Author: Dilip Kumar, Amit Kapila
Reviewed-by: Amit Kapila, Kuntal Ghosh and Sawada Masahiko
Discussion: https://postgr.es/m/CAD21AoCmT3cFQUN4aVvzy5chw7DuzXrJCbrjTU05B+Ss=Gn1LA@mail.gmail.com
src/backend/optimizer/plan/planner.c
src/backend/storage/lmgr/README
src/backend/storage/lmgr/deadlock.c
src/backend/storage/lmgr/lock.c
src/backend/storage/lmgr/proc.c