| From | Sent On | Attachments |
|---|---|---|
| Andrus Adamchik | Feb 22, 2012 11:03 am |
| Subject: | Fwd: Non-blocking DataRowStore - need help to test | |
|---|---|---|
| From: | Andrus Adamchik (and...@objectstyle.org) | |
| Date: | Feb 22, 2012 11:03:47 am | |
| List: | org.apache.cayenne.user | |
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 <and...@objectstyle.org> Date: February 22, 2012 9:54:41 PM GMT+03:00 To: de...@cayenne.apache.org Subject: Non-blocking DataRowStore - need help to test Reply-To: de...@cayenne.apache.org
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





