FYI. Figured I'd expand the scope of this pre-announcement to find some volunteers to test the new code. If anyone wants to do it, but can't build Cayenne trunk for some reason ( http://cayenne.apache.org/building-cayenne.html ), let me know. I'll assemble the binaries.
Thanks, Andrus Begin forwarded message: > From: Andrus Adamchik <[email protected]> > Date: February 22, 2012 9:54:41 PM GMT+03:00 > To: [email protected] > Subject: Non-blocking DataRowStore - need help to test > Reply-To: [email protected] > > 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
