Thread: pgsql: Allow relation extension lock to conflict among parallel group m

pgsql: Allow relation extension lock to conflict among parallel group m

From
Amit Kapila
Date:
Allow relation extension lock to conflict among parallel group members.

This is required as it is no safer for two related processes to extend the
same relation at a time than for unrelated processes to do the same.  We
don't acquire a heavyweight lock on any other object after relation
extension lock which means such a lock can never participate in the
deadlock cycle.  So, avoid checking wait edges from this lock.

This provides an infrastructure to allow parallel operations like insert,
copy, etc. which were earlier not possible as parallel group members won't
conflict for relation extension lock.

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

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/85f6b49c2c53fb1e08d918ec9305faac13cf7ad6

Modified Files
--------------
src/backend/storage/lmgr/deadlock.c |  8 ++++++++
src/backend/storage/lmgr/lock.c     | 10 ++++++++++
src/backend/storage/lmgr/proc.c     |  8 +++++++-
src/include/storage/lock.h          |  1 +
4 files changed, 26 insertions(+), 1 deletion(-)