On Tue, 24 Aug 2004, Christopher Kings-Lynne wrote: > > Uh ... the interesting question is usually not "does this backend hold > > any row locks", it is "is this row locked by any backends". If the > > latter question is not *exceedingly* cheap to answer, at least in the > > normal case where the answer is no, you don't have a workable solution, > > because you'll be adding nontrivial overhead to every row update. > > OK, what I mean is to know if a row is locked by any backend, why can't > we just put a reference count of the number of locks on that row, > instead of recording each backend separately? Wouldn't that require a > fixed amount of shared mem?
AFAICT you have to do something on top of that to allow deadlock detection. If transaction X has a shared row lock on A and is waiting on a lock for me and I want to get an exclusive row lock on A, how do I detect that it's a deadlock? ---------------------------(end of broadcast)--------------------------- TIP 6: Have you searched our list archives? http://archives.postgresql.org