Hi,
Indeed, but also 'classic 2PL' can still abort (allthough only because of completely different reasons).
Sure, but the spurious aborts should happen more often with OCC. Moreover, the reason why transactions are aborted using OCC renders a database replication algorithm more complex.
The current 'occ' usually works well, ie no lock overhead and no deadlock detection. Also the current scheme has a very simple 'abort',ie just throw away the current copies. But I agree its far from perfect and we have started some work on a 'simple' lock based version.
Do you have any idea of when this new module will be finished? I will probably have to write some simple 2PL mechanism to use MonetDB with our replication protocols. I do not intend to cover deadlock detection but since I am not used to Monet's structure and sources, it might take a while until I get it finished working alone. If you have plans to finish it soon, I could try to help you to get it done faster. BTW, here are two questions I sent to Martin Kersten and forgot to forward to the developers list. Actually I changed them a little bit as a result of your previous answers First, is it easy (feasible) to write a module to extend the kernel and provide consistent snapshots for read-only transactions while update transactions execute without blocking? Second, is there a simple way to bypass Mapi and submit SQL requests directly to the server's SQL front-end without the cost of a socket connection? Thanks again for the help. All the best, Rodrigo