Hi All,

During performance testing Amdatu Cassandra 0.2.1, I encountered the following 
issue:
http://jira.amdatu.org/jira/browse/AMDATUCASSANDRA-114

The issue manifests itself by this WARNING message reoccurring in the log:

WARNING: MemoryMeter uninitialized (jamm not specified as java agent); assuming 
liveRatio of 10.0. Usually this means cassandra-env.sh disabled jamm because 
you are using a buggy JRE; upgrade to the Sun JRE instead 
[org.amdatu.core.loghandler]

After investigation (see issue) it appears that in Apache Cassandra 0.8 a new 
approach was introduced to determine when the memtable is flushed to an 
SSTable. This approach uses a MemoryMeter, initialized as Java agent. When you 
run Cassandra as standalone tool you are supposed to specify that Java agent 
upon JVM startup as java option (-javaagent:lib/jamm-0.2.2.jar). This obviously 
fails in an OSGi context.
On the short term we can prevent the problem by switching back to the old 'when 
to flush the memtable' approach, used in 0.7. However, this new approach is the 
default and will probably the only supported approach in the future. So we need 
to think how we can initialize Java agents from OSGi. Does anyone have any 
experience with this? I tried the 'starting agents after JVM startup' approach 
described on 
http://download.oracle.com/javase/6/docs/api/java/lang/instrument/package-summary.html
 , but the OSGi classloader simply does not invoke my static agentmain (I 
modified the jamm jar to test that).

Regards, Ivo

GX Software | Ivo Ladage-van Doorn | Product Architect | Wijchenseweg 111 | 
6538 SW Nijmegen | The Netherlands | T +31(0)24 - 388 82 61 | F +31(0)24 - 388 
86 21 | 
[email protected]<mailto:[email protected]> | 
www.gxsoftware.com<http://www.gxsoftware.com> | 
twitter.com/GXSoftware<http://twitter.com/GXSoftware>

_______________________________________________
Amdatu-developers mailing list
[email protected]
http://lists.amdatu.org/mailman/listinfo/amdatu-developers

Reply via email to