pgsql: Allow relation extension lock to conflict among parallel group m - Mailing list pgsql-committers

From Amit Kapila
Subject pgsql: Allow relation extension lock to conflict among parallel group m
Date
Msg-id E1jF7vb-0004EC-OT@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
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(-)


pgsql-committers by date:

Previous
From: Peter Geoghegan
Date:
Subject: pgsql: nbtree: Remove obsolete _bt_pgaddtup() comments.
Next
From: Peter Eisentraut
Date:
Subject: pgsql: psql: Catch and report errors while printing result table