Re: "deadlock detected" documentation

Поиск
Список
Период
Сортировка
От Matt Mello
Тема Re: "deadlock detected" documentation
Дата
Msg-id 3EC3C77A.3010006@spaceship.com
обсуждение исходный текст
Ответ на Re: "deadlock detected" documentation  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: "deadlock detected" documentation
Список pgsql-sql
Tom Lane wrote:> You are probably getting deadlocks on the rows referenced by the foreign> keys, then.  As of the
currentrelease, each UPDATEd row will cause the> foreign-key triggers to grab a row lock (SELECT FOR UPDATE lock) on
the>referenced row in the other table.  If you have concurrent updates> touching rows that reference the same
other-tablerows, it's possible to> get a deadlock depending on the order in which the updates happen to> occur.
 
> There is a patch in CVS tip that alleviates the problem substantially> by not taking a foreign-table lock when the
foreignkey value isn't> being changed by the UPDATE, which is commonly the case (although I'm> not entirely sure that
itwill help you, since you do seem to be> updating the referencing column).  If you want to try it, I believe Jan>
Wieckposted a 7.3 version of the patch a month or so ago.
 

I see.  One item I forgot to mention ...  Both update statements have a 
where clause containing txn.terminalid=38.  Txn.terminalid is a foreign 
key column in that table (txn.terminalid->terminal.terminalid).  Could 
this be the source of the trouble?

If so, I can work around this for now, but the patch you mention sounds 
like it would work in almost all situations where this might adversely 
(and unexpectedly) affect us.

Thanks!

-- 
Matt Mello



В списке pgsql-sql по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: "deadlock detected" documentation
Следующее
От: Tom Lane
Дата:
Сообщение: Re: "deadlock detected" documentation