atom feed1 message in org.apache.cayenne.userFwd: Non-blocking DataRowStore - need...
FromSent OnAttachments
Andrus AdamchikFeb 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