You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cayenne.apache.org by Andrus Adamchik <an...@objectstyle.org> on 2012/03/03 20:06:39 UTC

Re: Non-blocking DataRowStore - need help to test

So, anyone had a chance to try it?

My colleagues are working on a test right now. Hopefully will have something next week. Also I did some more staring at the code involved, and I guess all we are doing here is making more obvious the lack of guaranteed order of context refresh events. Since cross-context synchronization was asynchronous already (or as I like to call it - "probabilistically consistent" :)), we are not changing the behavior that much, just changing the probability.

Still would like to hear the feedback from the field.

Cheers,
Andrus


On Feb 22, 2012, at 1:54 PM, Andrus Adamchik wrote:

> Here is a potentially disruptive change to Cayenne core:
> 
> http://svn.apache.org/viewvc?view=revision&revision=1292437
> (also see https://issues.apache.org/jira/browse/CAY-1670 )
> 
> This removes the major global lock and has a potential to significantly increase throughput (which is an issue, see CAY-1124 by Tore for instance). The implementation is based on a previously untried by us data structure - ConcurrentLinkedHashMap - http://code.google.com/p/concurrentlinkedhashmap/ . It is used by Apache Cassandra, so presumably it works and can handle the load. I internalized this code, placing it under org.apache.cayenne.util.concurrentlinkedhashmap.
> 
> I need help with testing though... Maybe someone has any kind of load tests that can emulate multiple DataContexts attached to a single ServerRuntime and performing various select/modify operations? Or maybe you are daring enough to place this in production? I will do the same on my end.
> 
> To give some reassurance, our single-threaded unit tests pass 100% with no changes after I swapped commons-collections LRUMap to ConcurrentLinkedHashMap. 
> 
> Appreciate feedback on this feature!
> 
> Thanks,
> Andrus