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 05:57:40 UTC
svn commit: r961107 - in /activemq/sandbox/activemq-apollo-actor: ./
activemq-broker/src/main/scala/org/apache/activemq/apollo/broker/
activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/
activemq-stomp/ activemq-stomp/src/main/scala/...
Author: chirino
Date: Wed Jul 7 03:57:39 2010
New Revision: 961107
URL: http://svn.apache.org/viewvc?rev=961107&view=rev
Log:
fixed a couple of shutdown cleanup issues
benchmarks now report the best out of all the samples
enabled -server jvm option for the benchmarks.
Modified:
activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/scala/org/apache/activemq/apollo/broker/Delivery.scala
activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/BaseBrokerPerfSupport.scala
activemq/sandbox/activemq-apollo-actor/activemq-stomp/pom.xml
activemq/sandbox/activemq-apollo-actor/activemq-stomp/src/main/scala/org/apache/activemq/apollo/stomp/StompProtocol.scala
activemq/sandbox/activemq-apollo-actor/activemq-tcp/src/main/java/org/apache/activemq/transport/tcp/TcpTransport.java
activemq/sandbox/activemq-apollo-actor/pom.xml
Modified: activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/scala/org/apache/activemq/apollo/broker/Delivery.scala
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/scala/org/apache/activemq/apollo/broker/Delivery.scala?rev=961107&r1=961106&r2=961107&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/scala/org/apache/activemq/apollo/broker/Delivery.scala (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-broker/src/main/scala/org/apache/activemq/apollo/broker/Delivery.scala Wed Jul 7 03:57:39 2010
@@ -412,7 +412,7 @@ trait DeliverySink {
*/
class TransportDeliverySink(var transport:Transport) extends DeliverySink {
def full:Boolean = transport.isFull
- def send(delivery:Delivery) = transport.oneway(delivery.message, delivery)
+ def send(delivery:Delivery) = if( transport.isConnected ) { transport.oneway(delivery.message, delivery) }
}
/**
Modified: activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/BaseBrokerPerfSupport.scala
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/BaseBrokerPerfSupport.scala?rev=961107&r1=961106&r2=961107&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/BaseBrokerPerfSupport.scala (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-broker/src/test/scala/org/apache/activemq/apollo/broker/perf/BaseBrokerPerfSupport.scala Wed Jul 7 03:57:39 2010
@@ -37,8 +37,8 @@ import org.apache.activemq.util.{IOHelpe
import scala.util.matching.Regex
object BaseBrokerPerfSupport {
- var PERFORMANCE_SAMPLES = Integer.parseInt(System.getProperty("PERFORMANCE_SAMPLES", "5"))
- var SAMPLE_PERIOD = java.lang.Long.parseLong(System.getProperty("SAMPLE_PERIOD", "3000"))
+ var PERFORMANCE_SAMPLES = Integer.parseInt(System.getProperty("PERFORMANCE_SAMPLES", "6"))
+ var SAMPLE_PERIOD = java.lang.Long.parseLong(System.getProperty("SAMPLE_PERIOD", "1000"))
// Set to use tcp IO
protected var TCP = true;
@@ -77,8 +77,7 @@ abstract class BaseBrokerPerfSupport ext
val producers = new ArrayList[RemoteProducer]()
val consumers = new ArrayList[RemoteConsumer]()
- var spread_sheet_stats:List[(String, AnyRef)] = Nil
-
+ var samples:List[(String, AnyRef)] = Nil
override protected def beforeEach() = {
totalProducerRate.removeAllMetrics
@@ -132,11 +131,16 @@ abstract class BaseBrokerPerfSupport ext
val template = IOHelper.readText(classOf[BaseBrokerPerfSupport].getResourceAsStream("report.html"))
template match {
case report_parser(report_header, _, report_footer) =>
- val version = new String(ProcessSupport.system("git", "rev-list", "--max-count=1", "HEAD").toByteArray).trim
+ var notes = System.getProperty("notes")
+ if( notes==null ) {
+ val version = new String(ProcessSupport.system("git", "rev-list", "--max-count=1", "HEAD").toByteArray).trim
+ notes = "commit "+version
+ }
+
if( !report_data.isEmpty ) {
report_data += ",\n"
}
- report_data += " ['commit "+version+"', "+spread_sheet_stats.map(x=>String.format("%.2f",x._2)).mkString(", ")+"]\n"
+ report_data += " ['"+jsescape(notes)+"', "+samples.map(x=>String.format("%.2f",x._2)).mkString(", ")+"]\n"
IOHelper.writeText(csvfile, report_header+report_data+report_footer)
case _ =>
println("could not parse template report file");
@@ -145,12 +149,27 @@ abstract class BaseBrokerPerfSupport ext
println("Updated: "+csvfile);
if( DUMP_REPORT_COLS ) {
- spread_sheet_stats.map(_._1).foreach{x=>
+ samples.map(_._1).foreach{x=>
println(" data.addColumn('number', '"+x+"');");
}
}
}
+ def jsescape(value:String) = {
+ var rc = ""
+ value.foreach{ c=>
+ c match {
+ case '\n'=> rc+="\\n"
+ case '\r'=> rc+="\\r"
+ case '\t'=> rc+="\\t"
+ case '\''=> rc+="\\\'"
+ case '\"'=> rc+="\\\""
+ case _ => rc+=c
+ }
+ }
+ rc
+ }
+
// Test all the combinations
for( PTP<- List(true,false) ; PERSISTENT <- List(false); DURABLE <- List(false) ; size <- List(20,1024,1024*256)) {
@@ -476,9 +495,19 @@ abstract class BaseBrokerPerfSupport ext
}
def reportRates() = {
- val best_sample = PERFORMANCE_SAMPLES/2
- println("Checking "+(if (PTP) "ptp" else "topic")+" rates...");
+ println("Warming up...");
+ Thread.sleep(SAMPLE_PERIOD);
+ totalProducerRate.reset();
+ totalConsumerRate.reset();
+
+ println("Sampling rates");
+
+ case class Summary(producer:java.lang.Float, pdev:java.lang.Float, consumer:java.lang.Float, cdev:java.lang.Float)
+
+ val sample_rates = new Array[Summary](PERFORMANCE_SAMPLES)
+ var best = 0;
+
for (i <- 0 until PERFORMANCE_SAMPLES) {
var p = new Period();
Thread.sleep(SAMPLE_PERIOD);
@@ -489,25 +518,33 @@ abstract class BaseBrokerPerfSupport ext
println(totalConsumerRate.getRateSummary(p));
}
- if( i == best_sample ) {
- if( producerCount > 0 ) {
- spread_sheet_stats = spread_sheet_stats ::: ( testName+" producer", totalProducerRate.total(p) ) :: Nil
- if( producerCount > 1 ) {
- spread_sheet_stats = spread_sheet_stats ::: ( testName+" producer sd", totalProducerRate.deviation ) :: Nil
- }
- }
- if( consumerCount > 0 ) {
- spread_sheet_stats = spread_sheet_stats ::: ( testName+" consumer", totalConsumerRate.total(p) ) :: Nil
- if( consumerCount > 1 ) {
- spread_sheet_stats = spread_sheet_stats ::: ( testName+" consumer sd", totalConsumerRate.deviation ) :: Nil
- }
- }
+ sample_rates(i) = Summary(totalProducerRate.total(p), totalProducerRate.deviation, totalConsumerRate.total(p), totalConsumerRate.deviation)
+
+ val current_sum = sample_rates(i).producer.longValue + sample_rates(i).consumer.longValue
+ val best_sum = sample_rates(i).producer.longValue + sample_rates(i).consumer.longValue
+ if( current_sum > best_sum ) {
+ best = i
}
totalProducerRate.reset();
totalConsumerRate.reset();
}
+
+ if( producerCount > 0 ) {
+ samples = samples ::: ( testName+" producer", sample_rates(best).producer ) :: Nil
+ if( producerCount > 1 ) {
+ samples = samples ::: ( testName+" producer sd", sample_rates(best).pdev ) :: Nil
+ }
+ }
+ if( consumerCount > 0 ) {
+ samples = samples ::: ( testName+" consumer", sample_rates(best).consumer ) :: Nil
+ if( consumerCount > 1 ) {
+ samples = samples ::: ( testName+" consumer sd", sample_rates(best).cdev ) :: Nil
+ }
+ }
+
+
}
}
Modified: activemq/sandbox/activemq-apollo-actor/activemq-stomp/pom.xml
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-stomp/pom.xml?rev=961107&r1=961106&r2=961107&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-stomp/pom.xml (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-stomp/pom.xml Wed Jul 7 03:57:39 2010
@@ -116,7 +116,6 @@
<version>${maven-surefire-plugin-version}</version>
<configuration>
<failIfNoTests>true</failIfNoTests>
- <argLine></argLine>
<includes>
<include>**/StompBrokerPerfTest.*</include>
</includes>
Modified: activemq/sandbox/activemq-apollo-actor/activemq-stomp/src/main/scala/org/apache/activemq/apollo/stomp/StompProtocol.scala
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-stomp/src/main/scala/org/apache/activemq/apollo/stomp/StompProtocol.scala?rev=961107&r1=961106&r2=961107&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-stomp/src/main/scala/org/apache/activemq/apollo/stomp/StompProtocol.scala (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-stomp/src/main/scala/org/apache/activemq/apollo/stomp/StompProtocol.scala Wed Jul 7 03:57:39 2010
@@ -100,7 +100,7 @@ class StompProtocolHandler extends Proto
override def onTransportConnected() = {
outboundChannel = new TransportDeliverySink(connection.transport) {
override def send(delivery: Delivery) = {
- if( !connection.stopped ) {
+ if( transport.isConnected ) {
transport.oneway(delivery.message.asInstanceOf[StompFrameMessage].frame, delivery)
}
}
Modified: activemq/sandbox/activemq-apollo-actor/activemq-tcp/src/main/java/org/apache/activemq/transport/tcp/TcpTransport.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-tcp/src/main/java/org/apache/activemq/transport/tcp/TcpTransport.java?rev=961107&r1=961106&r2=961107&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-tcp/src/main/java/org/apache/activemq/transport/tcp/TcpTransport.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-tcp/src/main/java/org/apache/activemq/transport/tcp/TcpTransport.java Wed Jul 7 03:57:39 2010
@@ -527,14 +527,14 @@ public class TcpTransport extends BaseSe
}
public void suspendRead() {
- if( assertConnected() ) {
+ if( isConnected() ) {
readSource.suspend();
}
}
public void resumeRead() {
- if( assertConnected() ) {
+ if( isConnected() ) {
readSource.resume();
}
}
Modified: activemq/sandbox/activemq-apollo-actor/pom.xml
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/pom.xml?rev=961107&r1=961106&r2=961107&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/pom.xml (original)
+++ activemq/sandbox/activemq-apollo-actor/pom.xml Wed Jul 7 03:57:39 2010
@@ -492,6 +492,10 @@
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin-version}</version>
<configuration>
+ <argLine>-server</argLine>
+ <systemPropertyVariables>
+ <notes>${notes}</notes>
+ </systemPropertyVariables>
<excludes>
<exclude>**/**</exclude>
</excludes>