You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ch...@apache.org on 2010/07/07 06:09:59 UTC
svn commit: r961140 - in /activemq/sandbox/activemq-apollo-actor:
activemq-broker/src/main/scala/org/apache/activemq/apollo/broker/
activemq-broker/src/test/resources/org/apache/activemq/apollo/broker/perf/
activemq-broker/src/test/scala/org/apache/act...
Author: chirino
Date: Wed Jul 7 04:09:59 2010
New Revision: 961140
URL: http://svn.apache.org/viewvc?rev=961140&view=rev
Log:
hawtdb based perf test in
Modified:
activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/scala/org/apache/activemq/apollo/broker/VirtualHost.scala
activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/resources/org/apache/activemq/apollo/broker/perf/persistent-report.html
activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/BrokerPerfSupport.scala
activemq/sandbox/activemq-apollo-actor/activemq-hawtdb/src/main/scala/org/apache/activemq/broker/store/hawtdb/HawtDBClient.scala
activemq/sandbox/activemq-apollo-actor/activemq-stomp/src/test/scala/org/apache/activemq/apollo/stomp/perf/StompBrokerPerfTest.scala
activemq/sandbox/activemq-apollo-actor/activemq-util/src/test/resources/log4j.properties
activemq/sandbox/activemq-apollo-actor/activemq-util/src/test/scala/org/apache/activemq/apollo/broker/FunSuiteSupport.scala
Modified: activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/scala/org/apache/activemq/apollo/broker/VirtualHost.scala
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/scala/org/apache/activemq/apollo/broker/VirtualHost.scala?rev=961140&r1=961139&r2=961140&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/scala/org/apache/activemq/apollo/broker/VirtualHost.scala (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/scala/org/apache/activemq/apollo/broker/VirtualHost.scala Wed Jul 7 04:09:59 2010
@@ -83,7 +83,7 @@ object VirtualHost extends Log {
/**
* @author <a href="http://hiramchirino.com">Hiram Chirino</a>
*/
-class VirtualHost(val broker: Broker) extends BaseService with DispatchLogging {
+class VirtualHost(val broker: Broker) extends BaseService with DispatchLogging with LoggingReporter {
import VirtualHost._
override protected def log = VirtualHost
@@ -126,6 +126,8 @@ class VirtualHost(val broker: Broker) ex
override protected def _start(onCompleted:Runnable):Unit = {
val tracker = new LoggingTracker("virtual host startup", dispatchQueue)
store = StoreFactory.create(config.store)
+
+ store.configure(config.store, this)
if( store!=null ) {
val task = tracker.task("store startup")
store.start(^{
@@ -192,9 +194,10 @@ class VirtualHost(val broker: Broker) ex
// done.await();
if( store!=null ) {
- store.stop();
+ store.stop(onCompleted);
+ } else {
+ onCompleted.run
}
- onCompleted.run
}
def getQueue(destination:Destination)(cb: (Queue)=>Unit ) = ^{
Modified: activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/resources/org/apache/activemq/apollo/broker/perf/persistent-report.html
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/resources/org/apache/activemq/apollo/broker/perf/persistent-report.html?rev=961140&r1=961139&r2=961140&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/resources/org/apache/activemq/apollo/broker/perf/persistent-report.html (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/resources/org/apache/activemq/apollo/broker/perf/persistent-report.html Wed Jul 7 04:09:59 2010
@@ -37,178 +37,154 @@
google.setOnLoadCallback(function() {
data = new google.visualization.DataTable();
data.addColumn('string', 'version');
- data.addColumn('number', 'queue 20b 1->1->1 producer');
- data.addColumn('number', 'queue 20b 1->1->1 consumer');
- data.addColumn('number', 'queue 20b 10->10->10 producer');
- data.addColumn('number', 'queue 20b 10->10->10 producer sd');
- data.addColumn('number', 'queue 20b 10->10->10 consumer');
- data.addColumn('number', 'queue 20b 10->10->10 consumer sd');
- data.addColumn('number', 'queue 20b 100->100->100 producer');
- data.addColumn('number', 'queue 20b 100->100->100 producer sd');
- data.addColumn('number', 'queue 20b 100->100->100 consumer');
- data.addColumn('number', 'queue 20b 100->100->100 consumer sd');
- data.addColumn('number', 'queue 20b 1000->1000->1000 producer');
- data.addColumn('number', 'queue 20b 1000->1000->1000 producer sd');
- data.addColumn('number', 'queue 20b 1000->1000->1000 consumer');
- data.addColumn('number', 'queue 20b 1000->1000->1000 consumer sd');
- data.addColumn('number', 'queue 20b 100->100->100 producer');
- data.addColumn('number', 'queue 20b 100->100->100 producer sd');
- data.addColumn('number', 'queue 20b 100->100->100 consumer');
- data.addColumn('number', 'queue 20b 100->100->100 consumer sd');
- data.addColumn('number', 'queue 20b 100->1->1 producer');
- data.addColumn('number', 'queue 20b 100->1->1 producer sd');
- data.addColumn('number', 'queue 20b 100->1->1 consumer');
- data.addColumn('number', 'queue 20b 1->1->100 producer');
- data.addColumn('number', 'queue 20b 1->1->100 consumer');
- data.addColumn('number', 'queue 20b 1->1->100 consumer sd');
- data.addColumn('number', 'queue 20b 100->1->100 producer');
- data.addColumn('number', 'queue 20b 100->1->100 producer sd');
- data.addColumn('number', 'queue 20b 100->1->100 consumer');
- data.addColumn('number', 'queue 20b 100->1->100 consumer sd');
- data.addColumn('number', 'queue 1k 1->1->1 producer');
- data.addColumn('number', 'queue 1k 1->1->1 consumer');
- data.addColumn('number', 'queue 1k 10->10->10 producer');
- data.addColumn('number', 'queue 1k 10->10->10 producer sd');
- data.addColumn('number', 'queue 1k 10->10->10 consumer');
- data.addColumn('number', 'queue 1k 10->10->10 consumer sd');
- data.addColumn('number', 'queue 1k 100->100->100 producer');
- data.addColumn('number', 'queue 1k 100->100->100 producer sd');
- data.addColumn('number', 'queue 1k 100->100->100 consumer');
- data.addColumn('number', 'queue 1k 100->100->100 consumer sd');
- data.addColumn('number', 'queue 1k 1000->1000->1000 producer');
- data.addColumn('number', 'queue 1k 1000->1000->1000 producer sd');
- data.addColumn('number', 'queue 1k 1000->1000->1000 consumer');
- data.addColumn('number', 'queue 1k 1000->1000->1000 consumer sd');
- data.addColumn('number', 'queue 1k 100->100->100 producer');
- data.addColumn('number', 'queue 1k 100->100->100 producer sd');
- data.addColumn('number', 'queue 1k 100->100->100 consumer');
- data.addColumn('number', 'queue 1k 100->100->100 consumer sd');
- data.addColumn('number', 'queue 1k 100->1->1 producer');
- data.addColumn('number', 'queue 1k 100->1->1 producer sd');
- data.addColumn('number', 'queue 1k 100->1->1 consumer');
- data.addColumn('number', 'queue 1k 1->1->100 producer');
- data.addColumn('number', 'queue 1k 1->1->100 consumer');
- data.addColumn('number', 'queue 1k 1->1->100 consumer sd');
- data.addColumn('number', 'queue 1k 100->1->100 producer');
- data.addColumn('number', 'queue 1k 100->1->100 producer sd');
- data.addColumn('number', 'queue 1k 100->1->100 consumer');
- data.addColumn('number', 'queue 1k 100->1->100 consumer sd');
- data.addColumn('number', 'queue 256k 1->1->1 producer');
- data.addColumn('number', 'queue 256k 1->1->1 consumer');
- data.addColumn('number', 'queue 256k 10->10->10 producer');
- data.addColumn('number', 'queue 256k 10->10->10 producer sd');
- data.addColumn('number', 'queue 256k 10->10->10 consumer');
- data.addColumn('number', 'queue 256k 10->10->10 consumer sd');
- data.addColumn('number', 'queue 256k 100->100->100 producer');
- data.addColumn('number', 'queue 256k 100->100->100 producer sd');
- data.addColumn('number', 'queue 256k 100->100->100 consumer');
- data.addColumn('number', 'queue 256k 100->100->100 consumer sd');
- data.addColumn('number', 'queue 256k 1000->1000->1000 producer');
- data.addColumn('number', 'queue 256k 1000->1000->1000 producer sd');
- data.addColumn('number', 'queue 256k 1000->1000->1000 consumer');
- data.addColumn('number', 'queue 256k 1000->1000->1000 consumer sd');
- data.addColumn('number', 'queue 256k 100->100->100 producer');
- data.addColumn('number', 'queue 256k 100->100->100 producer sd');
- data.addColumn('number', 'queue 256k 100->100->100 consumer');
- data.addColumn('number', 'queue 256k 100->100->100 consumer sd');
- data.addColumn('number', 'queue 256k 100->1->1 producer');
- data.addColumn('number', 'queue 256k 100->1->1 producer sd');
- data.addColumn('number', 'queue 256k 100->1->1 consumer');
- data.addColumn('number', 'queue 256k 1->1->100 producer');
- data.addColumn('number', 'queue 256k 1->1->100 consumer');
- data.addColumn('number', 'queue 256k 1->1->100 consumer sd');
- data.addColumn('number', 'queue 256k 100->1->100 producer');
- data.addColumn('number', 'queue 256k 100->1->100 producer sd');
- data.addColumn('number', 'queue 256k 100->1->100 consumer');
- data.addColumn('number', 'queue 256k 100->1->100 consumer sd');
- data.addColumn('number', 'topic 20b 1->1->0 producer');
- data.addColumn('number', 'topic 20b 1->1->1 producer');
- data.addColumn('number', 'topic 20b 1->1->1 consumer');
- data.addColumn('number', 'topic 20b 10->10->10 producer');
- data.addColumn('number', 'topic 20b 10->10->10 producer sd');
- data.addColumn('number', 'topic 20b 10->10->10 consumer');
- data.addColumn('number', 'topic 20b 10->10->10 consumer sd');
- data.addColumn('number', 'topic 20b 100->100->100 producer');
- data.addColumn('number', 'topic 20b 100->100->100 producer sd');
- data.addColumn('number', 'topic 20b 100->100->100 consumer');
- data.addColumn('number', 'topic 20b 100->100->100 consumer sd');
- data.addColumn('number', 'topic 20b 1000->1000->1000 producer');
- data.addColumn('number', 'topic 20b 1000->1000->1000 producer sd');
- data.addColumn('number', 'topic 20b 1000->1000->1000 consumer');
- data.addColumn('number', 'topic 20b 1000->1000->1000 consumer sd');
- data.addColumn('number', 'topic 20b 100->100->100 producer');
- data.addColumn('number', 'topic 20b 100->100->100 producer sd');
- data.addColumn('number', 'topic 20b 100->100->100 consumer');
- data.addColumn('number', 'topic 20b 100->100->100 consumer sd');
- data.addColumn('number', 'topic 20b 100->1->1 producer');
- data.addColumn('number', 'topic 20b 100->1->1 producer sd');
- data.addColumn('number', 'topic 20b 100->1->1 consumer');
- data.addColumn('number', 'topic 20b 1->1->100 producer');
- data.addColumn('number', 'topic 20b 1->1->100 consumer');
- data.addColumn('number', 'topic 20b 1->1->100 consumer sd');
- data.addColumn('number', 'topic 20b 100->1->100 producer');
- data.addColumn('number', 'topic 20b 100->1->100 producer sd');
- data.addColumn('number', 'topic 20b 100->1->100 consumer');
- data.addColumn('number', 'topic 20b 100->1->100 consumer sd');
- data.addColumn('number', 'topic 1k 1->1->0 producer');
- data.addColumn('number', 'topic 1k 1->1->1 producer');
- data.addColumn('number', 'topic 1k 1->1->1 consumer');
- data.addColumn('number', 'topic 1k 10->10->10 producer');
- data.addColumn('number', 'topic 1k 10->10->10 producer sd');
- data.addColumn('number', 'topic 1k 10->10->10 consumer');
- data.addColumn('number', 'topic 1k 10->10->10 consumer sd');
- data.addColumn('number', 'topic 1k 100->100->100 producer');
- data.addColumn('number', 'topic 1k 100->100->100 producer sd');
- data.addColumn('number', 'topic 1k 100->100->100 consumer');
- data.addColumn('number', 'topic 1k 100->100->100 consumer sd');
- data.addColumn('number', 'topic 1k 1000->1000->1000 producer');
- data.addColumn('number', 'topic 1k 1000->1000->1000 producer sd');
- data.addColumn('number', 'topic 1k 1000->1000->1000 consumer');
- data.addColumn('number', 'topic 1k 1000->1000->1000 consumer sd');
- data.addColumn('number', 'topic 1k 100->100->100 producer');
- data.addColumn('number', 'topic 1k 100->100->100 producer sd');
- data.addColumn('number', 'topic 1k 100->100->100 consumer');
- data.addColumn('number', 'topic 1k 100->100->100 consumer sd');
- data.addColumn('number', 'topic 1k 100->1->1 producer');
- data.addColumn('number', 'topic 1k 100->1->1 producer sd');
- data.addColumn('number', 'topic 1k 100->1->1 consumer');
- data.addColumn('number', 'topic 1k 1->1->100 producer');
- data.addColumn('number', 'topic 1k 1->1->100 consumer');
- data.addColumn('number', 'topic 1k 1->1->100 consumer sd');
- data.addColumn('number', 'topic 1k 100->1->100 producer');
- data.addColumn('number', 'topic 1k 100->1->100 producer sd');
- data.addColumn('number', 'topic 1k 100->1->100 consumer');
- data.addColumn('number', 'topic 1k 100->1->100 consumer sd');
- data.addColumn('number', 'topic 256k 1->1->0 producer');
- data.addColumn('number', 'topic 256k 1->1->1 producer');
- data.addColumn('number', 'topic 256k 1->1->1 consumer');
- data.addColumn('number', 'topic 256k 10->10->10 producer');
- data.addColumn('number', 'topic 256k 10->10->10 producer sd');
- data.addColumn('number', 'topic 256k 10->10->10 consumer');
- data.addColumn('number', 'topic 256k 10->10->10 consumer sd');
- data.addColumn('number', 'topic 256k 100->100->100 producer');
- data.addColumn('number', 'topic 256k 100->100->100 producer sd');
- data.addColumn('number', 'topic 256k 100->100->100 consumer');
- data.addColumn('number', 'topic 256k 100->100->100 consumer sd');
- data.addColumn('number', 'topic 256k 1000->1000->1000 producer');
- data.addColumn('number', 'topic 256k 1000->1000->1000 producer sd');
- data.addColumn('number', 'topic 256k 1000->1000->1000 consumer');
- data.addColumn('number', 'topic 256k 1000->1000->1000 consumer sd');
- data.addColumn('number', 'topic 256k 100->100->100 producer');
- data.addColumn('number', 'topic 256k 100->100->100 producer sd');
- data.addColumn('number', 'topic 256k 100->100->100 consumer');
- data.addColumn('number', 'topic 256k 100->100->100 consumer sd');
- data.addColumn('number', 'topic 256k 100->1->1 producer');
- data.addColumn('number', 'topic 256k 100->1->1 producer sd');
- data.addColumn('number', 'topic 256k 100->1->1 consumer');
- data.addColumn('number', 'topic 256k 1->1->100 producer');
- data.addColumn('number', 'topic 256k 1->1->100 consumer');
- data.addColumn('number', 'topic 256k 1->1->100 consumer sd');
- data.addColumn('number', 'topic 256k 100->1->100 producer');
- data.addColumn('number', 'topic 256k 100->1->100 producer sd');
- data.addColumn('number', 'topic 256k 100->1->100 consumer');
- data.addColumn('number', 'topic 256k 100->1->100 consumer sd');
-
+ data.addColumn('number', 'queue 20b 1->1->1 producer')
+ data.addColumn('number', 'queue 20b 1->1->1 consumer')
+ data.addColumn('number', 'queue 20b 10->10->10 producer')
+ data.addColumn('number', 'queue 20b 10->10->10 producer sd')
+ data.addColumn('number', 'queue 20b 10->10->10 consumer')
+ data.addColumn('number', 'queue 20b 10->10->10 consumer sd')
+ data.addColumn('number', 'queue 20b 50->50->50 producer')
+ data.addColumn('number', 'queue 20b 50->50->50 producer sd')
+ data.addColumn('number', 'queue 20b 50->50->50 consumer')
+ data.addColumn('number', 'queue 20b 50->50->50 consumer sd')
+ data.addColumn('number', 'queue 20b 100->100->100 producer')
+ data.addColumn('number', 'queue 20b 100->100->100 producer sd')
+ data.addColumn('number', 'queue 20b 100->100->100 consumer')
+ data.addColumn('number', 'queue 20b 100->100->100 consumer sd')
+ data.addColumn('number', 'queue 20b 100->1->1 producer')
+ data.addColumn('number', 'queue 20b 100->1->1 producer sd')
+ data.addColumn('number', 'queue 20b 100->1->1 consumer')
+ data.addColumn('number', 'queue 20b 1->1->100 producer')
+ data.addColumn('number', 'queue 20b 1->1->100 consumer')
+ data.addColumn('number', 'queue 20b 1->1->100 consumer sd')
+ data.addColumn('number', 'queue 20b 100->1->100 producer')
+ data.addColumn('number', 'queue 20b 100->1->100 producer sd')
+ data.addColumn('number', 'queue 20b 100->1->100 consumer')
+ data.addColumn('number', 'queue 20b 100->1->100 consumer sd')
+ data.addColumn('number', 'queue 1k 1->1->1 producer')
+ data.addColumn('number', 'queue 1k 1->1->1 consumer')
+ data.addColumn('number', 'queue 1k 10->10->10 producer')
+ data.addColumn('number', 'queue 1k 10->10->10 producer sd')
+ data.addColumn('number', 'queue 1k 10->10->10 consumer')
+ data.addColumn('number', 'queue 1k 10->10->10 consumer sd')
+ data.addColumn('number', 'queue 1k 50->50->50 producer')
+ data.addColumn('number', 'queue 1k 50->50->50 producer sd')
+ data.addColumn('number', 'queue 1k 50->50->50 consumer')
+ data.addColumn('number', 'queue 1k 50->50->50 consumer sd')
+ data.addColumn('number', 'queue 1k 100->100->100 producer')
+ data.addColumn('number', 'queue 1k 100->100->100 producer sd')
+ data.addColumn('number', 'queue 1k 100->100->100 consumer')
+ data.addColumn('number', 'queue 1k 100->100->100 consumer sd')
+ data.addColumn('number', 'queue 1k 100->1->1 producer')
+ data.addColumn('number', 'queue 1k 100->1->1 producer sd')
+ data.addColumn('number', 'queue 1k 100->1->1 consumer')
+ data.addColumn('number', 'queue 1k 1->1->100 producer')
+ data.addColumn('number', 'queue 1k 1->1->100 consumer')
+ data.addColumn('number', 'queue 1k 1->1->100 consumer sd')
+ data.addColumn('number', 'queue 1k 100->1->100 producer')
+ data.addColumn('number', 'queue 1k 100->1->100 producer sd')
+ data.addColumn('number', 'queue 1k 100->1->100 consumer')
+ data.addColumn('number', 'queue 1k 100->1->100 consumer sd')
+ data.addColumn('number', 'queue 256k 1->1->1 producer')
+ data.addColumn('number', 'queue 256k 1->1->1 consumer')
+ data.addColumn('number', 'queue 256k 10->10->10 producer')
+ data.addColumn('number', 'queue 256k 10->10->10 producer sd')
+ data.addColumn('number', 'queue 256k 10->10->10 consumer')
+ data.addColumn('number', 'queue 256k 10->10->10 consumer sd')
+ data.addColumn('number', 'queue 256k 50->50->50 producer')
+ data.addColumn('number', 'queue 256k 50->50->50 producer sd')
+ data.addColumn('number', 'queue 256k 50->50->50 consumer')
+ data.addColumn('number', 'queue 256k 50->50->50 consumer sd')
+ data.addColumn('number', 'queue 256k 100->100->100 producer')
+ data.addColumn('number', 'queue 256k 100->100->100 producer sd')
+ data.addColumn('number', 'queue 256k 100->100->100 consumer')
+ data.addColumn('number', 'queue 256k 100->100->100 consumer sd')
+ data.addColumn('number', 'queue 256k 100->1->1 producer')
+ data.addColumn('number', 'queue 256k 100->1->1 producer sd')
+ data.addColumn('number', 'queue 256k 100->1->1 consumer')
+ data.addColumn('number', 'queue 256k 1->1->100 producer')
+ data.addColumn('number', 'queue 256k 1->1->100 consumer')
+ data.addColumn('number', 'queue 256k 1->1->100 consumer sd')
+ data.addColumn('number', 'queue 256k 100->1->100 producer')
+ data.addColumn('number', 'queue 256k 100->1->100 producer sd')
+ data.addColumn('number', 'queue 256k 100->1->100 consumer')
+ data.addColumn('number', 'queue 256k 100->1->100 consumer sd')
+ data.addColumn('number', 'topic 20b 1->1->0 producer')
+ data.addColumn('number', 'topic 20b 1->1->1 producer')
+ data.addColumn('number', 'topic 20b 1->1->1 consumer')
+ data.addColumn('number', 'topic 20b 10->10->10 producer')
+ data.addColumn('number', 'topic 20b 10->10->10 producer sd')
+ data.addColumn('number', 'topic 20b 10->10->10 consumer')
+ data.addColumn('number', 'topic 20b 10->10->10 consumer sd')
+ data.addColumn('number', 'topic 20b 50->50->50 producer')
+ data.addColumn('number', 'topic 20b 50->50->50 producer sd')
+ data.addColumn('number', 'topic 20b 50->50->50 consumer')
+ data.addColumn('number', 'topic 20b 50->50->50 consumer sd')
+ data.addColumn('number', 'topic 20b 100->100->100 producer')
+ data.addColumn('number', 'topic 20b 100->100->100 producer sd')
+ data.addColumn('number', 'topic 20b 100->100->100 consumer')
+ data.addColumn('number', 'topic 20b 100->100->100 consumer sd')
+ data.addColumn('number', 'topic 20b 100->1->1 producer')
+ data.addColumn('number', 'topic 20b 100->1->1 producer sd')
+ data.addColumn('number', 'topic 20b 100->1->1 consumer')
+ data.addColumn('number', 'topic 20b 1->1->100 producer')
+ data.addColumn('number', 'topic 20b 1->1->100 consumer')
+ data.addColumn('number', 'topic 20b 1->1->100 consumer sd')
+ data.addColumn('number', 'topic 20b 100->1->100 producer')
+ data.addColumn('number', 'topic 20b 100->1->100 producer sd')
+ data.addColumn('number', 'topic 20b 100->1->100 consumer')
+ data.addColumn('number', 'topic 20b 100->1->100 consumer sd')
+ data.addColumn('number', 'topic 1k 1->1->0 producer')
+ data.addColumn('number', 'topic 1k 1->1->1 producer')
+ data.addColumn('number', 'topic 1k 1->1->1 consumer')
+ data.addColumn('number', 'topic 1k 10->10->10 producer')
+ data.addColumn('number', 'topic 1k 10->10->10 producer sd')
+ data.addColumn('number', 'topic 1k 10->10->10 consumer')
+ data.addColumn('number', 'topic 1k 10->10->10 consumer sd')
+ data.addColumn('number', 'topic 1k 50->50->50 producer')
+ data.addColumn('number', 'topic 1k 50->50->50 producer sd')
+ data.addColumn('number', 'topic 1k 50->50->50 consumer')
+ data.addColumn('number', 'topic 1k 50->50->50 consumer sd')
+ data.addColumn('number', 'topic 1k 100->100->100 producer')
+ data.addColumn('number', 'topic 1k 100->100->100 producer sd')
+ data.addColumn('number', 'topic 1k 100->100->100 consumer')
+ data.addColumn('number', 'topic 1k 100->100->100 consumer sd')
+ data.addColumn('number', 'topic 1k 100->1->1 producer')
+ data.addColumn('number', 'topic 1k 100->1->1 producer sd')
+ data.addColumn('number', 'topic 1k 100->1->1 consumer')
+ data.addColumn('number', 'topic 1k 1->1->100 producer')
+ data.addColumn('number', 'topic 1k 1->1->100 consumer')
+ data.addColumn('number', 'topic 1k 1->1->100 consumer sd')
+ data.addColumn('number', 'topic 1k 100->1->100 producer')
+ data.addColumn('number', 'topic 1k 100->1->100 producer sd')
+ data.addColumn('number', 'topic 1k 100->1->100 consumer')
+ data.addColumn('number', 'topic 1k 100->1->100 consumer sd')
+ data.addColumn('number', 'topic 256k 1->1->0 producer')
+ data.addColumn('number', 'topic 256k 1->1->1 producer')
+ data.addColumn('number', 'topic 256k 1->1->1 consumer')
+ data.addColumn('number', 'topic 256k 10->10->10 producer')
+ data.addColumn('number', 'topic 256k 10->10->10 producer sd')
+ data.addColumn('number', 'topic 256k 10->10->10 consumer')
+ data.addColumn('number', 'topic 256k 10->10->10 consumer sd')
+ data.addColumn('number', 'topic 256k 50->50->50 producer')
+ data.addColumn('number', 'topic 256k 50->50->50 producer sd')
+ data.addColumn('number', 'topic 256k 50->50->50 consumer')
+ data.addColumn('number', 'topic 256k 50->50->50 consumer sd')
+ data.addColumn('number', 'topic 256k 100->100->100 producer')
+ data.addColumn('number', 'topic 256k 100->100->100 producer sd')
+ data.addColumn('number', 'topic 256k 100->100->100 consumer')
+ data.addColumn('number', 'topic 256k 100->100->100 consumer sd')
+ data.addColumn('number', 'topic 256k 100->1->1 producer')
+ data.addColumn('number', 'topic 256k 100->1->1 producer sd')
+ data.addColumn('number', 'topic 256k 100->1->1 consumer')
+ data.addColumn('number', 'topic 256k 1->1->100 producer')
+ data.addColumn('number', 'topic 256k 1->1->100 consumer')
+ data.addColumn('number', 'topic 256k 1->1->100 consumer sd')
+ data.addColumn('number', 'topic 256k 100->1->100 producer')
+ data.addColumn('number', 'topic 256k 100->1->100 producer sd')
+ data.addColumn('number', 'topic 256k 100->1->100 consumer')
+ data.addColumn('number', 'topic 256k 100->1->100 consumer sd')
+
data_funcs = new Array(data.getNumberOfColumns());
for( var i=0; i < data.getNumberOfColumns(); i ++) {
cols_index_map[data.getColumnLabel(i)] = i;
Modified: activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/BrokerPerfSupport.scala
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/BrokerPerfSupport.scala?rev=961140&r1=961139&r2=961140&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/BrokerPerfSupport.scala (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/BrokerPerfSupport.scala Wed Jul 7 04:09:59 2010
@@ -31,6 +31,7 @@ import collection.mutable.ListBuffer
import java.net.URL
import java.util.concurrent.TimeUnit
import org.fusesource.hawtdispatch.ScalaDispatch._
+import org.apache.activemq.apollo.dto.BrokerDTO
/**
*
@@ -183,7 +184,7 @@ abstract class BrokerPerfSupport extends
def getBrokerWireFormat() = "multi"
def getRemoteWireFormat(): String
- def createBroker(name: String, bindURI: String, connectUri: String): Broker = {
+ def createBrokerConfig(name: String, bindURI: String, connectUri: String): BrokerDTO = {
val config = Broker.defaultConfig
val connector = config.connectors.get(0)
@@ -193,22 +194,22 @@ abstract class BrokerPerfSupport extends
val host = config.virtualHosts.get(0)
host.purgeOnStartup = true
-
- val broker = new Broker()
- broker.config = config
- broker
+ config
}
def createConnections() = {
if (MULTI_BROKER) {
- sendBroker = createBroker("SendBroker", sendBrokerBindURI, sendBrokerConnectURI)
- rcvBroker = createBroker("RcvBroker", receiveBrokerBindURI, receiveBrokerConnectURI)
+ sendBroker = new Broker()
+ sendBroker.config = createBrokerConfig("SendBroker", sendBrokerBindURI, sendBrokerConnectURI)
+ rcvBroker = new Broker()
+ rcvBroker.config = createBrokerConfig("RcvBroker", receiveBrokerBindURI, receiveBrokerConnectURI)
brokers += (sendBroker)
brokers += (rcvBroker)
} else {
- sendBroker = createBroker("Broker", sendBrokerBindURI, sendBrokerConnectURI)
+ sendBroker = new Broker()
rcvBroker = sendBroker
+ sendBroker.config = createBrokerConfig("Broker", sendBrokerBindURI, sendBrokerConnectURI)
brokers += (sendBroker)
}
Modified: activemq/sandbox/activemq-apollo-actor/activemq-hawtdb/src/main/scala/org/apache/activemq/broker/store/hawtdb/HawtDBClient.scala
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-hawtdb/src/main/scala/org/apache/activemq/broker/store/hawtdb/HawtDBClient.scala?rev=961140&r1=961139&r2=961140&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-hawtdb/src/main/scala/org/apache/activemq/broker/store/hawtdb/HawtDBClient.scala (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-hawtdb/src/main/scala/org/apache/activemq/broker/store/hawtdb/HawtDBClient.scala Wed Jul 7 04:09:59 2010
@@ -190,9 +190,11 @@ class HawtDBClient(hawtDBStore: HawtDBSt
}
def stop() = {
- // this cancels schedualed jobs...
schedual_version.incrementAndGet
+ journal.close
flush
+ pageFileFactory.close
+ lockFile.unlock
}
def addQueue(record: QueueRecord, callback:Runnable) = {
@@ -633,10 +635,42 @@ class HawtDBClient(hawtDBStore: HawtDBSt
private def index(tx: Transaction, update: TypeCreatable, location: Location): Unit = {
- object Process extends TxHelper(tx) {
- import JavaConversions._
+ val helper = new TxHelper(tx)
+ import JavaConversions._
+ import helper._
+
+ def removeMessage(key:Long) = {
+ val location = messageKeyIndex.remove(key)
+ if (location != null) {
+ val fileId:jl.Integer = location.getDataFileId()
+ addAndGet(dataFileRefIndex, fileId, -1)
+ } else {
+ error("Cannot remove message, it did not exist: %d", key)
+ }
+ }
+
+ def removeQueue(queueKey:Long) = {
+ val queueRecord = queueIndex.remove(queueKey)
+ if (queueRecord != null) {
+ val trackingIndex = queueTrackingIndex(queueRecord)
+ val entryIndex = queueEntryIndex(queueRecord)
+
+ trackingIndex.iterator.map { entry=>
+ val messageKey = entry.getKey
+ if( addAndGet(messageRefsIndex, messageKey, -1) == 0 ) {
+ // message is no longer referenced.. we can remove it..
+ removeMessage(messageKey.longValue)
+ }
+ }
+
+ entryIndex.destroy
+ trackingIndex.destroy
+ }
+
+ }
- def apply(x: AddMessage.Getter): Unit = {
+ update match {
+ case x: AddMessage.Getter =>
val messageKey = x.getMessageKey()
if (messageKey > databaseRootRecord.getLastMessageKey) {
@@ -657,54 +691,9 @@ class HawtDBClient(hawtDBStore: HawtDBSt
val fileId:jl.Integer = location.getDataFileId()
addAndGet(dataFileRefIndex, fileId, 1)
}
- }
-
- def removeMessage(key:Long) = {
- val location = messageKeyIndex.remove(key)
- if (location != null) {
- val fileId:jl.Integer = location.getDataFileId()
- addAndGet(dataFileRefIndex, fileId, -1)
- } else {
- error("Cannot remove message, it did not exist: %d", key)
- }
- }
-
- def apply(x: AddQueue.Getter): Unit = {
- val queueKey = x.getKey
- if (queueIndex.get(queueKey) == null) {
-
- if (queueKey > databaseRootRecord.getLastQueueKey) {
- databaseRootRecord.setLastQueueKey(queueKey)
- }
-
- val queueRecord = new QueueRootRecord.Bean
- queueRecord.setEntryIndexPage(alloc(QUEUE_ENTRY_INDEX_FACTORY))
- queueRecord.setTrackingIndexPage(alloc(QUEUE_TRACKING_INDEX_FACTORY))
- queueRecord.setInfo(x)
- queueIndex.put(queueKey, queueRecord.freeze)
- }
- }
-
- def apply(x: RemoveQueue.Getter): Unit = {
- val queueRecord = queueIndex.remove(x.getKey)
- if (queueRecord != null) {
- val trackingIndex = queueTrackingIndex(queueRecord)
- val entryIndex = queueEntryIndex(queueRecord)
-
- trackingIndex.iterator.map { entry=>
- val messageKey = entry.getKey
- if( addAndGet(messageRefsIndex, messageKey, -1) == 0 ) {
- // message is no longer referenced.. we can remove it..
- removeMessage(messageKey.longValue)
- }
- }
- entryIndex.destroy
- trackingIndex.destroy
- }
- }
+ case x: AddQueueEntry.Getter =>
- def apply(x: AddQueueEntry.Getter): Unit = {
val queueKey = x.getQueueKey
val queueRecord = queueIndex.get(queueKey)
if (queueRecord != null) {
@@ -737,9 +726,8 @@ class HawtDBClient(hawtDBStore: HawtDBSt
} else {
error("Queue not found: %d", x.getQueueKey)
}
- }
- def apply(x: RemoveQueueEntry.Getter): Unit = {
+ case x: RemoveQueueEntry.Getter =>
val queueKey = x.getQueueKey
val queueRecord = queueIndex.get(queueKey)
if (queueRecord != null) {
@@ -764,17 +752,34 @@ class HawtDBClient(hawtDBStore: HawtDBSt
} else {
error("Queue not found: %d", x.getQueueKey)
}
- }
- def apply(x: Purge.Getter): Unit = {
+ case x: AddQueue.Getter =>
+ val queueKey = x.getKey
+ if (queueIndex.get(queueKey) == null) {
+
+ if (queueKey > databaseRootRecord.getLastQueueKey) {
+ databaseRootRecord.setLastQueueKey(queueKey)
+ }
+
+ val queueRecord = new QueueRootRecord.Bean
+ queueRecord.setEntryIndexPage(alloc(QUEUE_ENTRY_INDEX_FACTORY))
+ queueRecord.setTrackingIndexPage(alloc(QUEUE_TRACKING_INDEX_FACTORY))
+ queueRecord.setInfo(x)
+ queueIndex.put(queueKey, queueRecord.freeze)
+ }
+
+ case x: RemoveQueue.Getter =>
+ removeQueue(x.getKey)
+
+ case x: AddTrace.Getter =>
+ // trace messages are informational messages in the journal used to log
+ // historical info about store state. They don't update the indexes.
+ case x: Purge.Getter =>
// Remove all the queues...
- queueIndex.iterator.map {
- entry =>
- entry.getKey
- }.foreach {
- key =>
- apply(new RemoveQueue.Bean().setKey(key.intValue))
+ val queueKeys = queueIndex.iterator.map( _.getKey ).toList
+ queueKeys.foreach { key =>
+ removeQueue(key.longValue)
}
// Remove stored messages...
@@ -785,31 +790,6 @@ class HawtDBClient(hawtDBStore: HawtDBSt
cleanup(tx);
info("Store purged.");
- }
-
- def apply(x: AddTrace.Getter): Unit = {
- // trace messages are informational messages in the journal used to log
- // historical info about store state. They don't update the indexes.
- }
- }
-
- update match {
- case x: AddMessage.Getter =>
- Process(x)
- case x: AddQueueEntry.Getter =>
- Process(x)
- case x: RemoveQueueEntry.Getter =>
- Process(x)
-
- case x: AddQueue.Getter =>
- Process(x)
- case x: RemoveQueue.Getter =>
- Process(x)
-
- case x: AddTrace.Getter =>
- Process(x)
- case x: Purge.Getter =>
- Process(x)
case x: AddSubscription.Getter =>
case x: RemoveSubscription.Getter =>
Modified: activemq/sandbox/activemq-apollo-actor/activemq-stomp/src/test/scala/org/apache/activemq/apollo/stomp/perf/StompBrokerPerfTest.scala
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-stomp/src/test/scala/org/apache/activemq/apollo/stomp/perf/StompBrokerPerfTest.scala?rev=961140&r1=961139&r2=961140&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-stomp/src/test/scala/org/apache/activemq/apollo/stomp/perf/StompBrokerPerfTest.scala (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-stomp/src/test/scala/org/apache/activemq/apollo/stomp/perf/StompBrokerPerfTest.scala Wed Jul 7 04:09:59 2010
@@ -28,6 +28,8 @@ import AsciiBuffer._
import Stomp._
import _root_.org.apache.activemq.apollo.stomp.StompFrame
import _root_.org.fusesource.hawtdispatch.ScalaDispatch._
+import java.io.File
+import org.apache.activemq.apollo.dto.{BrokerDTO, HawtDBStoreDTO}
class StompBrokerPerfTest extends BaseBrokerPerfSupport {
@@ -50,6 +52,29 @@ class StompPersistentBrokerPerfTest exte
}
+class StompHawtDBPersistentBrokerPerfTest extends BasePersistentBrokerPerfSupport {
+
+ println(getClass.getClassLoader.getResource("log4j.properties"))
+
+ override def createProducer() = new StompRemoteProducer()
+
+ override def createConsumer() = new StompRemoteConsumer()
+
+ override def getRemoteWireFormat() = "stomp"
+
+ override def createBrokerConfig(name: String, bindURI: String, connectUri: String): BrokerDTO = {
+ val rc = super.createBrokerConfig(name, bindURI, connectUri)
+
+ val store = new HawtDBStoreDTO
+ store.directory = new File(new File(testDataDir, getClass.getName), name)
+
+ rc.virtualHosts.get(0).store = store
+ rc
+ }
+
+
+}
+
class StompRemoteConsumer extends RemoteConsumer {
var outboundSink: OverflowSink[StompFrame] = null
Modified: activemq/sandbox/activemq-apollo-actor/activemq-util/src/test/resources/log4j.properties
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-util/src/test/resources/log4j.properties?rev=961140&r1=961139&r2=961140&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-util/src/test/resources/log4j.properties (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-util/src/test/resources/log4j.properties Wed Jul 7 04:09:59 2010
@@ -19,13 +19,14 @@
# The logging properties used during tests..
#
log4j.rootLogger=WARN, console, file
-log4j.logger.org.apache.activemq=TRACE
+log4j.logger.org.apache.activemq=INFO
+log4j.logger.org.fusesource.hawtdb=TRACE
# Console will only display warnnings
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%-5p | %t | %m%n
-log4j.appender.console.threshold=TRACE
+log4j.appender.console.threshold=INFO
# File appender will contain all info messages
log4j.appender.file=org.apache.log4j.FileAppender
Modified: activemq/sandbox/activemq-apollo-actor/activemq-util/src/test/scala/org/apache/activemq/apollo/broker/FunSuiteSupport.scala
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-util/src/test/scala/org/apache/activemq/apollo/broker/FunSuiteSupport.scala?rev=961140&r1=961139&r2=961140&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-util/src/test/scala/org/apache/activemq/apollo/broker/FunSuiteSupport.scala (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-util/src/test/scala/org/apache/activemq/apollo/broker/FunSuiteSupport.scala Wed Jul 7 04:09:59 2010
@@ -23,6 +23,12 @@ abstract class FunSuiteSupport extends F
new File(_basedir)
}
+ /**
+ * Returns ${basedir}/target/test-data
+ */
+ def testDataDir = {
+ new File(new File(_basedir, "target"), "test-data")
+ }
override protected def beforeAll(map: Map[String, Any]): Unit = {
_basedir = map.get("basedir") match {