Bingo! That is why I have been so excited about
MVCC. It makes it so the locking is used only for what it needs to be
used for, and gives more control over the overall concurrency issue.

The really slick thing about this is that it seriously helps
optimistic concurrency, because there is only one type of isolation level that
can be violated under MVCC : Serializable. Many, many applications
don't even need that level of isolation, and those that do can often work with
simple synchronization constructs to prevent the issue from even arising.

I've got to figure out how to get this code into your hands
- maybe I'll send it in zip file this evening.

- K

>
So, locking imposes an ordering constraint on the execution of transactions
but the data view is governed by MVCC?

This is completely different with MVCC. Transactions operate in
complete isolation from each other, regardless of what type of locking you
use.

In the proof of concept I've put together, you can release locks whenever you
want without violating isolation. Locking is only necessary to ensure
serializability.

Nice, eh?

- K

<SNIP>

<
<
<

-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Jdbm-developer mailing list
Jdbm-developer@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jdbm-developer