You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by or...@apache.org on 2012/10/09 22:37:39 UTC

svn commit: r1396299 - in /qpid/trunk/qpid/java/perftests/etc: chartdefs/ testdefs/

Author: orudyy
Date: Tue Oct  9 20:37:39 2012
New Revision: 1396299

URL: http://svn.apache.org/viewvc?rev=1396299&view=rev
Log:
QPID-4314: Add distributed tests to measure the impact of selectors on consumers' performance

Added:
    qpid/trunk/qpid/java/perftests/etc/chartdefs/1300-QueueConsumersWithNonOverlappingSelectors-Transient.chartdef
    qpid/trunk/qpid/java/perftests/etc/chartdefs/1301-QueueConsumersWithNonOverlappingSelectors-Persistent.chartdef
    qpid/trunk/qpid/java/perftests/etc/chartdefs/1302-QueueConsumersWithOverlappingSelectors-Transient.chartdef
    qpid/trunk/qpid/java/perftests/etc/chartdefs/1303-QueueConsumersWithOverlappingSelectors-Persistent.chartdef
    qpid/trunk/qpid/java/perftests/etc/testdefs/QueueConsumersWithNonOverlappingSelectors.js
    qpid/trunk/qpid/java/perftests/etc/testdefs/QueueConsumersWithOverlappingSelectors.js

Added: qpid/trunk/qpid/java/perftests/etc/chartdefs/1300-QueueConsumersWithNonOverlappingSelectors-Transient.chartdef
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/perftests/etc/chartdefs/1300-QueueConsumersWithNonOverlappingSelectors-Transient.chartdef?rev=1396299&view=auto
==============================================================================
--- qpid/trunk/qpid/java/perftests/etc/chartdefs/1300-QueueConsumersWithNonOverlappingSelectors-Transient.chartdef (added)
+++ qpid/trunk/qpid/java/perftests/etc/chartdefs/1300-QueueConsumersWithNonOverlappingSelectors-Transient.chartdef Tue Oct  9 20:37:39 2012
@@ -0,0 +1,37 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+chartType=XYLINE
+chartTitle=Impact of non-overlapping selectors on queue consumers with transient messages
+chartSubtitle=Transient 1KB messages
+xAxisTitle=Consumers
+yAxisTitle=Throughput (messages/s)
+chartDescription=Impact of non-overlapping selectors on queue consumers with transient messages, auto-ack, message payload of 1024 bytes, 1 producer, varying  number of consumers from 1 to 32.
+
+series.1.statement=SELECT totalNumberOfConsumers, throughputMessagesPerS FROM QueueConsumersWithNonOverlappingSelectors WHERE participantName = 'All' and testName like '%non overlapping - NON_PERSISTENT%'
+series.1.legend=Current
+series.1.dir=${csvCurrentDir}
+series.1.colourName=blue
+
+series.2.statement=SELECT totalNumberOfConsumers, throughputMessagesPerS FROM QueueConsumersWithNonOverlappingSelectors WHERE participantName = 'All' and testName like '%non overlapping - NON_PERSISTENT%'
+series.2.legend=Baseline
+series.2.dir=${csvBaselineDir}
+series.2.colourName=dark_red
+series.2.stokeWidth=-1
+

Added: qpid/trunk/qpid/java/perftests/etc/chartdefs/1301-QueueConsumersWithNonOverlappingSelectors-Persistent.chartdef
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/perftests/etc/chartdefs/1301-QueueConsumersWithNonOverlappingSelectors-Persistent.chartdef?rev=1396299&view=auto
==============================================================================
--- qpid/trunk/qpid/java/perftests/etc/chartdefs/1301-QueueConsumersWithNonOverlappingSelectors-Persistent.chartdef (added)
+++ qpid/trunk/qpid/java/perftests/etc/chartdefs/1301-QueueConsumersWithNonOverlappingSelectors-Persistent.chartdef Tue Oct  9 20:37:39 2012
@@ -0,0 +1,43 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+chartType=XYLINE
+chartTitle=Impact of non-overlapping selectors on queue consumers with persistent messages
+chartSubtitle=Persistent 1KB messages
+xAxisTitle=Consumers
+yAxisTitle=Throughput (messages/s)
+chartDescription=Impact of non-overlapping selectors on queue consumers with persistent messages, auto-ack, message payload of 1024 bytes, 1 producer, varying number of consumers from 1 to 32..
+
+
+series.1.statement=SELECT totalNumberOfConsumers, throughputMessagesPerS FROM QueueConsumersWithNonOverlappingSelectors WHERE participantName = 'All' and testName like '%non overlapping - PERSISTENT'
+series.1.legend=Current
+series.1.dir=${csvCurrentDir}
+series.1.colourName=blue
+
+series.2.statement=SELECT totalNumberOfConsumers, throughputMessagesPerS FROM QueueConsumersWithNonOverlappingSelectors WHERE participantName = 'All' and testName like '%non overlapping - PERSISTENT'
+series.2.legend=Baseline
+series.2.dir=${csvBaselineDir}
+series.2.colourName=dark_red
+series.2.stokeWidth=-1
+
+series.3.statement=SELECT totalNumberOfConsumers, throughputMessagesPerS FROM VaryingNumberOfParticipants WHERE participantName = 'All' and totalNumberOfProducers = '1' and acknowledgeMode = '1'
+series.3.legend=Current: no selectors
+series.3.dir=${csvCurrentDir}
+series.3.colourName=green
+

Added: qpid/trunk/qpid/java/perftests/etc/chartdefs/1302-QueueConsumersWithOverlappingSelectors-Transient.chartdef
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/perftests/etc/chartdefs/1302-QueueConsumersWithOverlappingSelectors-Transient.chartdef?rev=1396299&view=auto
==============================================================================
--- qpid/trunk/qpid/java/perftests/etc/chartdefs/1302-QueueConsumersWithOverlappingSelectors-Transient.chartdef (added)
+++ qpid/trunk/qpid/java/perftests/etc/chartdefs/1302-QueueConsumersWithOverlappingSelectors-Transient.chartdef Tue Oct  9 20:37:39 2012
@@ -0,0 +1,36 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+chartType=XYLINE
+chartTitle=Impact of 50%-overlapping selectors in queue consumers with transient messages
+chartSubtitle=Transient 1KB messages
+xAxisTitle=Consumers
+yAxisTitle=Throughput (messages/s)
+chartDescription=Impact of 50%-overlapping selectors in queue consumers with transient messages, auto-ack, message payload 1KB, 1 producer, varying number of consumers from 2 to 32.
+
+series.1.statement=SELECT totalNumberOfConsumers,throughputMessagesPerS FROM QueueConsumersWithOverlappingSelectors WHERE participantName = 'All' and testName like '%50_ overlapping - NON_PERSISTENT%'
+series.1.legend=Current
+series.1.dir=${csvCurrentDir}
+series.1.colourName=blue
+
+series.2.statement=SELECT totalNumberOfConsumers, throughputMessagesPerS FROM QueueConsumersWithOverlappingSelectors WHERE participantName = 'All' and testName like '%50_ overlapping - NON_PERSISTENT%'
+series.2.legend=Baseline
+series.2.dir=${csvBaselineDir}
+series.2.colourName=dark_red
+series.2.stokeWidth=-1

Added: qpid/trunk/qpid/java/perftests/etc/chartdefs/1303-QueueConsumersWithOverlappingSelectors-Persistent.chartdef
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/perftests/etc/chartdefs/1303-QueueConsumersWithOverlappingSelectors-Persistent.chartdef?rev=1396299&view=auto
==============================================================================
--- qpid/trunk/qpid/java/perftests/etc/chartdefs/1303-QueueConsumersWithOverlappingSelectors-Persistent.chartdef (added)
+++ qpid/trunk/qpid/java/perftests/etc/chartdefs/1303-QueueConsumersWithOverlappingSelectors-Persistent.chartdef Tue Oct  9 20:37:39 2012
@@ -0,0 +1,42 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+chartType=XYLINE
+chartTitle=Impact of 50%-overlapping selectors in queue consumers with persistent messages
+chartDescription=Impact of 50%-overlapping selectors in queue consumers with persistent messages, auto-ack, message payload of 1KB, 1 producer, varying number of consumers from 2 to 32.
+chartSubtitle=Persistent 1KB messages
+xAxisTitle=Consumers
+yAxisTitle=Throughput (messages/s)
+
+series.1.statement=SELECT totalNumberOfConsumers, throughputMessagesPerS FROM QueueConsumersWithOverlappingSelectors WHERE participantName = 'All' and testName like '%50_ overlapping - PERSISTENT%'
+series.1.legend=Current
+series.1.dir=${csvCurrentDir}
+series.1.colourName=blue
+
+series.2.statement=SELECT totalNumberOfConsumers, throughputMessagesPerS FROM QueueConsumersWithOverlappingSelectors WHERE participantName = 'All' and testName like '%50_ overlapping - PERSISTENT%'
+series.2.legend=Baseline
+series.2.dir=${csvBaselineDir}
+series.2.colourName=dark_red
+series.2.stokeWidth=-1
+
+series.3.statement=SELECT totalNumberOfConsumers, throughputMessagesPerS FROM VaryingNumberOfParticipants WHERE participantName = 'All' and totalNumberOfProducers = '1' and acknowledgeMode = '1'
+series.3.legend=Current: no selectors
+series.3.dir=${csvCurrentDir}
+series.3.colourName=green
+

Added: qpid/trunk/qpid/java/perftests/etc/testdefs/QueueConsumersWithNonOverlappingSelectors.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/perftests/etc/testdefs/QueueConsumersWithNonOverlappingSelectors.js?rev=1396299&view=auto
==============================================================================
--- qpid/trunk/qpid/java/perftests/etc/testdefs/QueueConsumersWithNonOverlappingSelectors.js (added)
+++ qpid/trunk/qpid/java/perftests/etc/testdefs/QueueConsumersWithNonOverlappingSelectors.js Tue Oct  9 20:37:39 2012
@@ -0,0 +1,120 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+var jsonObject = {
+    _tests:[]
+};
+
+for (var i=0; i<2; i++)
+{
+    var deliveryMode = i+1;
+    var durable = (deliveryMode == 2);
+    var suffix = durable ? "PERSISTENT" : "NON-PERSISTENT";
+    var queueName = "direct://amq.direct//queue-selectors-" + suffix + "?durable='" + durable + "'";
+    var consumerNumbers = [1, 2, 4, 8, 16, 32];
+    var consumerAcknowledgeMode = 1;
+    for (var j=0; j<consumerNumbers.length; j++)
+    {
+        var consumerNumber = consumerNumbers[j];
+        var testName = "Queues with selectors: " +consumerNumber + " consumers - 1 producer - non overlapping - " + suffix;
+        var test = {
+                "_name": testName,
+                "_queues":[
+                  {
+                    "_name": queueName,
+                    "_durable": durable,
+                    "_attributes":
+                      {
+                        "x-qpid-capacity": 10485760,
+                        "x-qpid-flow-resume-capacity": 8388608
+                      }
+                  }
+                ],
+                "_clients":[
+                  {
+                    "_name": "producingClient",
+                    "_messageProviders": [
+                      {
+                          "_name": "messageProvider",
+                          "_messageProperties": {
+                              "id": {
+                                  "@def": "range",
+                                  "_lower": 1,
+                                  "_upper": consumerNumber,
+                                  "_type": "int"
+                              }
+                          }
+                      }
+                    ],
+                    "_connections":[
+                      {
+                        "_name": "connection1",
+                        "_factory": "connectionfactory",
+                        "_sessions": [
+                          {
+                            "_sessionName": "session1",
+                            "_acknowledgeMode": 1,
+                            "_producers": [
+                              {
+                                "_name": "Producer1",
+                                "_destinationName": queueName,
+                                "_maximumDuration": 60000,
+                                "_deliveryMode": deliveryMode,
+                                "_messageSize": 1024,
+                                "_messageProviderName": "messageProvider"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "_name": "consumingClient",
+                    "_connections":[]
+                  }
+                ]
+              };
+        for(var n=0; n<consumerNumber; n++)
+        {
+            var consumerConnection = {
+                    "_name": "connection" + n,
+                    "_factory": "connectionfactory",
+                    "_sessions": [
+                      {
+                        "_sessionName": "session" + n,
+                        "_acknowledgeMode": consumerAcknowledgeMode,
+                        "_consumers": [
+                          {
+                            "_name": "Consumer" + n,
+                            "_destinationName": queueName,
+                            "_maximumDuration": 60000,
+                            "_selector": "id=" + ( n + 1)
+                          }
+                        ]
+                      }
+                    ]
+                  };
+            test._clients[1]._connections.push(consumerConnection);
+        }
+        jsonObject._tests.push(test);
+    }
+}
+

Added: qpid/trunk/qpid/java/perftests/etc/testdefs/QueueConsumersWithOverlappingSelectors.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/perftests/etc/testdefs/QueueConsumersWithOverlappingSelectors.js?rev=1396299&view=auto
==============================================================================
--- qpid/trunk/qpid/java/perftests/etc/testdefs/QueueConsumersWithOverlappingSelectors.js (added)
+++ qpid/trunk/qpid/java/perftests/etc/testdefs/QueueConsumersWithOverlappingSelectors.js Tue Oct  9 20:37:39 2012
@@ -0,0 +1,131 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+var jsonObject = {
+    _tests:[]
+};
+
+for (var i=0; i<2; i++)
+{
+    var deliveryMode = i+1;
+    var durable = (deliveryMode == 2);
+    var suffix = durable ? "PERSISTENT" : "NON-PERSISTENT";
+    var queueName = "direct://amq.direct//queue-selectors-overlapping-" + suffix + "?durable='" + durable + "'";
+    var consumerNumbers = [2, 4, 8, 16, 32];
+    var consumerAcknowledgeMode = 1;
+    for (var j=0; j<consumerNumbers.length; j++)
+    {
+        var consumerNumber = consumerNumbers[j];
+        var testName = "Queues with selectors: " +consumerNumber + " consumers - 1 producer - 50% overlapping - " + suffix;
+        var test = {
+                "_name": testName,
+                "_queues":[
+                  {
+                    "_name": queueName,
+                    "_durable": durable,
+                    "_attributes":
+                      {
+                        "x-qpid-capacity": 10485760,
+                        "x-qpid-flow-resume-capacity": 8388608
+                      }
+                  }
+                ],
+                "_clients":[
+                  {
+                    "_name": "producingClient",
+                    "_messageProviders": [
+                      {
+                          "_name": "messageProvider",
+                          "_messageProperties": {
+                              "id": {
+                                  "@def": "range",
+                                  "_lower": 1,
+                                  "_upper": consumerNumber * 2,
+                                  "_type": "int"
+                              }
+                          }
+                      }
+                    ],
+                    "_connections":[
+                      {
+                        "_name": "connection1",
+                        "_factory": "connectionfactory",
+                        "_sessions": [
+                          {
+                            "_sessionName": "session1",
+                            "_acknowledgeMode": 1,
+                            "_producers": [
+                              {
+                                "_name": "Producer1",
+                                "_destinationName": queueName,
+                                "_maximumDuration": 60000,
+                                "_deliveryMode": deliveryMode,
+                                "_messageSize": 1024,
+                                "_messageProviderName": "messageProvider"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "_name": "consumingClient",
+                    "_connections":[]
+                  }
+                ]
+              };
+
+        var selectorBase = "";
+        var maxId = consumerNumber * 2;
+        // odd IDs overlaps in each selector expression
+        for (var m = 1; m <= maxId; m+=2)
+        {
+            selectorBase += " or id=" + m;
+        }
+        for(var n = 0, id = 0 ; n< consumerNumber; n++)
+        {
+            // even IDs are unique per each selector expression
+            id = id + 2;
+            selector = "id=" + id + selectorBase;
+            var consumerConnection = {
+                    "_name": "connection" + n,
+                    "_factory": "connectionfactory",
+                    "_sessions": [
+                      {
+                        "_sessionName": "session" + n,
+                        "_acknowledgeMode": consumerAcknowledgeMode,
+                        "_consumers": [
+                          {
+                            "_name": "Consumer" + n,
+                            "_destinationName": queueName,
+                            "_maximumDuration": 60000,
+                            "_selector": selector
+                          }
+                        ]
+                      }
+                    ]
+                  };
+            test._clients[1]._connections.push(consumerConnection);
+        }
+        jsonObject._tests.push(test);
+    }
+}
+



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org