Andrew Lawrenson wrote:
I've done some more experimentation & testing.

At the moment, when syscolumns is updated, if a sub-transction is done, the 
update is done with an expicit no-wait on locks.
I've tried changing this so that it will use the same wait policy as the parent 
transaction - when this is done, I see none of the problems reported, and can 
have up to 100 concurrent threads inserting without any failing (whereas before 
this would instantly lock up).

So the question now is: "is the no-wait for the sub-transaction actually 
necessary?".

Personally, I can't see why it is, although I'm not exactly a guru at derby 
internals.  If the reason why is simply to increase concurrency, then I think 
it's flawed, as it forces more updates to be carried out by the parent 
transaction, which will hold the lock much longer before committing...

Any ideas?  Or is this the wrong list to be asking - should I pose this on 
derby-developers instead?


I think derby-dev is more appropriate for this discussion. I do not know why there is a no-wait for subtransactions, maybe it is done to avoid risks of deadlocks. You could try running the Derby test suites to see if some problems are revealed.

--
Øystein

Reply via email to