From: | Jan Wieck <JanWieck(at)Yahoo(dot)com> |
---|---|
To: | PostgreSQL development <pgsql-hackers(at)postgresql(dot)org>, PostgreSQL general <pgsql-general(at)postgresql(dot)org> |
Subject: | FK deadlock problem addressed |
Date: | 2003-04-07 20:51:33 |
Message-ID: | 3E91E4D5.888159A5@Yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general pgsql-hackers |
On behalf of Liberty RMS I looked at the deadlock problems caused by our
implementation of foreign keys. Thanks to peer review and help from
Stephan Szabo and Tom Lane (Stephan actually had "the" idea) it turned
out that the comment I wrote in December 1999 was wrong.
I just committed a small change to ri_triggers.c that fires the NO
ACTION trigger every time after the SET DEFAULT trigger updated the FK
table. That will catch the case where we delete or update the primary
key consisting of the default values of a foreign key, which was the
reason why we did the check on UPDATE even if the foreign key values
don't change.
Updating a row that has foreign keys without touching the foreign key
values will not try to lock the referenced rows any more. This should
avoid most of the deadlock problems reported (we still have to do the
FOR UPDATE lock if the FK values change until we have a better lock or
lookup mechanism). As a side effect, it increases the performance of
such updates significantly.
I also have patches for this available for 7.3.2 and 7.2.4. I will post
a separate message for discussion if we want to backpatch.
Jan
--
#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me. #
#================================================== JanWieck(at)Yahoo(dot)com #
From | Date | Subject | |
---|---|---|---|
Next Message | Jan Wieck | 2003-04-07 20:51:57 | Backpatch FK changes to 7.3 and 7.2? |
Previous Message | Dan Langille | 2003-04-07 20:42:04 | Re: possible time change issue - known problem? |
From | Date | Subject | |
---|---|---|---|
Next Message | Jan Wieck | 2003-04-07 20:51:57 | Backpatch FK changes to 7.3 and 7.2? |
Previous Message | Greg Stark | 2003-04-07 20:50:03 | Re: No merge sort? |