Hi,
I've extended the original DLD design to also support deadlock detection
on local caches and updated design forum [1].
This, together with the replicated deadlock detection is implemented in
trunk (some minor stuff to do still: DLD for aggregation methods like
clear and addAll + unit test).
I've also created a benchmark to test what's the throughput (tx/min)
between caches running with and without DLD.
You can find full test description within test class:
http://anonsvn.jboss.org/repos/infinispan/trunk/core/src/test/java//org/i...
Local DLD does good job (cca 5.5 times better) but replicated DLD does
extraordinary: cca 101 better throughput (see attached).
I think DLD is cool stuff and differentiates us a bit from competition,
afaik none of them have a DLD.
One more thing that's worth mentioning: while running DLD tests I've
noticed that if all tx acquire locks on keys in same order, then no
deadlocks exists. This is logic and might seem obvious, but is not
stated anywhere and the performance increase by doing this might be very
dramatic. I think we should document this as a best practice when it
comes to transactions - any suggestion where?
I also intend to blog about it shortly.
Cheers,
Mircea
[1]
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4244838#...