Mike Matrigali wrote:


Daniel John Debrunner wrote:

Knut Anders Hatlen wrote:

Mike Matrigali <[EMAIL PROTECTED]> writes:

< snip .?

I'm not so sure. If it's simpler to keep page latching at the page level, then it would be better to remove the added complexity from the lock manager. What's the current state of IDEs/debuggers tracking down java synchronization deadlocks? Seems a better place to solve the problem.

And also does it help track down a deadlock that is half java synchonization and half derby lock wait?


I doubt IDES/Debuggers will helps if a user really hits a LATCH/LOCK or a LATCH/LATCH deadlock. Most of the time I would think they are not easily reproducible cases; All that user going to tell is DERBY is acting weird/frozen.

Recent jvms (jdk142 onwards) do tell if there is dead-lock on the monitor on a stack dump. I hope the stacks will give us some clues,
if the dead locks involves onlt latches or locks also.

If it is embedded , say in APP server I wonder how easy to get a
stack dump or how big it is going to be!

If some one is wondering , does these deadlocks really happen, I found one : http://issues.apache.org/jira/browse/DERBY-1189
(but Mike seems to have got luckey with the repro)

Lock : LATCH, T1, Page(35,Container(0, 1728))
Waiting XID : {385920, BaseContainerHandle:(Container(0, 1728))} , APP, CALL S
YSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE('APP', 'T1', 1, 1, 1)
  Granted XID : {385920, BaseContainerHandle:(Container(0, 1728))}
. The selected victim is XID : 385920.


If we are removing Latching out of LockManager for perfromance reasons, my preference also would be to handle at the page level, instead of having yet another indirection.

As Mike mentioned , it would be nice to have a VTI that will show the latches in the system.


Thanks
-suresh

Reply via email to