Josh Berkus <j...@agliodbs.com> writes: > Yes; it's a major project. Our detector works pretty well for deadlocks > which are 2-process locks or even several processes all locking against > the same first process. However, triangular and quadralateral deadlocks > (which I've seen more than once) it completely cannot handle,
Hm? Please explain what you're talking about. > and some > types of activity which can cause deadlocks (like autovacuum or DDL > activity) also seem to be outside its purview. There's some known issues with deadlocks involving LWLocks as well as regular locks, which I agree aren't fixable without some significant rework. But I don't believe there's anything fundamentally wrong with the deadlock detector --- the real problem there is stretching LWLocks beyond their design intention, namely to be used only for situations where deadlock is impossible. > Also, even where the deadlock detector does its job, it's still the most > expensive type of serialization failure: Well, that's certainly true --- you don't want deadlock recovery to be part of any high-performance path. > 3. deadlocks can, and do, result in cancelling several transactions > instead of just one; there is no "winner" which is allowed to complete. Not sure I believe this either; one deadlock kills one transaction. If you lose multiple transactions I think you had multiple deadlocks. regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers