You are viewing a plain text version of this content. The canonical link for it is here.
Posted to gitbox@activemq.apache.org by GitBox <gi...@apache.org> on 2020/12/16 10:22:25 UTC
[GitHub] [activemq-artemis] gtully opened a new pull request #3382: ARTEMIS-3033 - implement address tree map for wildcards in place of l…
gtully opened a new pull request #3382:
URL: https://github.com/apache/activemq-artemis/pull/3382
…inked addresses
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [activemq-artemis] gtully commented on pull request #3382: ARTEMIS-3033 - implement address tree map for wildcards in place of l…
Posted by GitBox <gi...@apache.org>.
gtully commented on pull request #3382:
URL: https://github.com/apache/activemq-artemis/pull/3382#issuecomment-747106671
pushed a fix that allows the map traversal without matching existing wildcards in the tree. This works nice for applying new bindings and the existing traversal works for publish to a new address to find all matching bindings.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [activemq-artemis] gtully commented on pull request #3382: ARTEMIS-3033 - implement address tree map for wildcards in place of l…
Posted by GitBox <gi...@apache.org>.
gtully commented on pull request #3382:
URL: https://github.com/apache/activemq-artemis/pull/3382#issuecomment-747031683
The raw bench result:
// before
Benchmark (topicsLog2) Mode Cnt Score Error Units
WildcardAddressManagerPerfTest.both 2 thrpt 16 516495.226 ± 14266.760 ops/s
WildcardAddressManagerPerfTest.both:testAddRemoveNewBindingWhilePublish 2 thrpt 16 516495.226 ± 14266.760 ops/s
WildcardAddressManagerPerfTest.both:·gc.alloc.rate 2 thrpt 16 482.418 ± 12.989 MB/sec
WildcardAddressManagerPerfTest.both:·gc.alloc.rate.norm 2 thrpt 16 1472.001 ± 0.001 B/op
WildcardAddressManagerPerfTest.both:·gc.churn.PS_Eden_Space 2 thrpt 16 458.176 ± 17.939 MB/sec
WildcardAddressManagerPerfTest.both:·gc.churn.PS_Eden_Space.norm 2 thrpt 16 1398.076 ± 41.390 B/op
WildcardAddressManagerPerfTest.both:·gc.churn.PS_Survivor_Space 2 thrpt 16 0.132 ± 0.041 MB/sec
WildcardAddressManagerPerfTest.both:·gc.churn.PS_Survivor_Space.norm 2 thrpt 16 0.404 ± 0.126 B/op
WildcardAddressManagerPerfTest.both:·gc.count 2 thrpt 16 199.000 counts
WildcardAddressManagerPerfTest.both:·gc.time 2 thrpt 16 131.000 ms
WildcardAddressManagerPerfTest.both 8 thrpt 16 7113.704 ± 103.940 ops/s
WildcardAddressManagerPerfTest.both:testAddRemoveNewBindingWhilePublish 8 thrpt 16 7113.704 ± 103.940 ops/s
WildcardAddressManagerPerfTest.both:·gc.alloc.rate 8 thrpt 16 262.105 ± 3.847 MB/sec
WildcardAddressManagerPerfTest.both:·gc.alloc.rate.norm 8 thrpt 16 58000.087 ± 0.002 B/op
WildcardAddressManagerPerfTest.both:·gc.count 8 thrpt 16 ≈ 0 counts
WildcardAddressManagerPerfTest.both 10 thrpt 16 855.968 ± 32.521 ops/s
WildcardAddressManagerPerfTest.both:testAddRemoveNewBindingWhilePublish 10 thrpt 16 855.968 ± 32.521 ops/s
WildcardAddressManagerPerfTest.both:·gc.alloc.rate 10 thrpt 16 124.991 ± 4.732 MB/sec
WildcardAddressManagerPerfTest.both:·gc.alloc.rate.norm 10 thrpt 16 230032.750 ± 0.085 B/op
WildcardAddressManagerPerfTest.both:·gc.count 10 thrpt 16 ≈ 0 counts
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding 2 thrpt 16 535497.941 ± 4235.180 ops/s
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding:·gc.alloc.rate 2 thrpt 16 500.444 ± 3.950 MB/sec
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding:·gc.alloc.rate.norm 2 thrpt 16 1472.001 ± 0.001 B/op
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding:·gc.churn.PS_Eden_Space 2 thrpt 16 478.122 ± 16.276 MB/sec
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding:·gc.churn.PS_Eden_Space.norm 2 thrpt 16 1406.170 ± 40.602 B/op
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding:·gc.churn.PS_Survivor_Space 2 thrpt 16 0.126 ± 0.034 MB/sec
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding:·gc.churn.PS_Survivor_Space.norm 2 thrpt 16 0.370 ± 0.100 B/op
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding:·gc.count 2 thrpt 16 202.000 counts
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding:·gc.time 2 thrpt 16 123.000 ms
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding 8 thrpt 16 7078.200 ± 69.896 ops/s
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding:·gc.alloc.rate 8 thrpt 16 260.564 ± 2.642 MB/sec
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding:·gc.alloc.rate.norm 8 thrpt 16 58000.062 ± 0.002 B/op
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding:·gc.count 8 thrpt 16 ≈ 0 counts
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding 10 thrpt 16 884.006 ± 19.897 ops/s
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding:·gc.alloc.rate 10 thrpt 16 128.976 ± 2.912 MB/sec
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding:·gc.alloc.rate.norm 10 thrpt 16 230032.517 ± 0.080 B/op
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding:·gc.count 10 thrpt 16 ≈ 0 counts
WildcardAddressManagerPerfTest.testJustPublish 2 thrpt 16 93062855.857 ± 402154.252 ops/s
WildcardAddressManagerPerfTest.testJustPublish:·gc.alloc.rate 2 thrpt 16 ≈ 10⁻⁴ MB/sec
WildcardAddressManagerPerfTest.testJustPublish:·gc.alloc.rate.norm 2 thrpt 16 ≈ 10⁻⁵ B/op
WildcardAddressManagerPerfTest.testJustPublish:·gc.count 2 thrpt 16 ≈ 0 counts
WildcardAddressManagerPerfTest.testJustPublish 8 thrpt 16 65149310.990 ± 1244584.449 ops/s
WildcardAddressManagerPerfTest.testJustPublish:·gc.alloc.rate 8 thrpt 16 ≈ 10⁻⁴ MB/sec
WildcardAddressManagerPerfTest.testJustPublish:·gc.alloc.rate.norm 8 thrpt 16 ≈ 10⁻⁵ B/op
WildcardAddressManagerPerfTest.testJustPublish:·gc.count 8 thrpt 16 ≈ 0 counts
WildcardAddressManagerPerfTest.testJustPublish 10 thrpt 16 32496186.560 ± 267181.374 ops/s
WildcardAddressManagerPerfTest.testJustPublish:·gc.alloc.rate 10 thrpt 16 ≈ 10⁻⁴ MB/sec
WildcardAddressManagerPerfTest.testJustPublish:·gc.alloc.rate.norm 10 thrpt 16 ≈ 10⁻⁵ B/op
WildcardAddressManagerPerfTest.testJustPublish:·gc.count 10 thrpt 16 ≈ 0 counts
// after
Benchmark (topicsLog2) Mode Cnt Score Error Units
WildcardAddressManagerPerfTest.both 2 thrpt 16 1201749.633 ± 10355.392 ops/s
WildcardAddressManagerPerfTest.both:testAddRemoveNewBindingWhilePublish 2 thrpt 16 1201749.633 ± 10355.392 ops/s
WildcardAddressManagerPerfTest.both:·gc.alloc.rate 2 thrpt 16 561.613 ± 4.938 MB/sec
WildcardAddressManagerPerfTest.both:·gc.alloc.rate.norm 2 thrpt 16 736.001 ± 0.001 B/op
WildcardAddressManagerPerfTest.both:·gc.churn.PS_Eden_Space 2 thrpt 16 542.034 ± 13.831 MB/sec
WildcardAddressManagerPerfTest.both:·gc.churn.PS_Eden_Space.norm 2 thrpt 16 710.368 ± 18.131 B/op
WildcardAddressManagerPerfTest.both:·gc.churn.PS_Survivor_Space 2 thrpt 16 0.123 ± 0.024 MB/sec
WildcardAddressManagerPerfTest.both:·gc.churn.PS_Survivor_Space.norm 2 thrpt 16 0.161 ± 0.032 B/op
WildcardAddressManagerPerfTest.both:·gc.count 2 thrpt 16 218.000 counts
WildcardAddressManagerPerfTest.both:·gc.time 2 thrpt 16 134.000 ms
WildcardAddressManagerPerfTest.both 8 thrpt 16 1115451.351 ± 8942.474 ops/s
WildcardAddressManagerPerfTest.both:testAddRemoveNewBindingWhilePublish 8 thrpt 16 1115451.351 ± 8942.474 ops/s
WildcardAddressManagerPerfTest.both:·gc.alloc.rate 8 thrpt 16 530.023 ± 11.613 MB/sec
WildcardAddressManagerPerfTest.both:·gc.alloc.rate.norm 8 thrpt 16 748.001 ± 12.619 B/op
WildcardAddressManagerPerfTest.both:·gc.churn.PS_Eden_Space 8 thrpt 16 510.957 ± 18.384 MB/sec
WildcardAddressManagerPerfTest.both:·gc.churn.PS_Eden_Space.norm 8 thrpt 16 721.069 ± 23.137 B/op
WildcardAddressManagerPerfTest.both:·gc.churn.PS_Survivor_Space 8 thrpt 16 0.092 ± 0.030 MB/sec
WildcardAddressManagerPerfTest.both:·gc.churn.PS_Survivor_Space.norm 8 thrpt 16 0.130 ± 0.042 B/op
WildcardAddressManagerPerfTest.both:·gc.count 8 thrpt 16 215.000 counts
WildcardAddressManagerPerfTest.both:·gc.time 8 thrpt 16 134.000 ms
WildcardAddressManagerPerfTest.both 10 thrpt 16 1041470.151 ± 16293.381 ops/s
WildcardAddressManagerPerfTest.both:testAddRemoveNewBindingWhilePublish 10 thrpt 16 1041470.151 ± 16293.381 ops/s
WildcardAddressManagerPerfTest.both:·gc.alloc.rate 10 thrpt 16 502.699 ± 7.913 MB/sec
WildcardAddressManagerPerfTest.both:·gc.alloc.rate.norm 10 thrpt 16 760.001 ± 0.001 B/op
WildcardAddressManagerPerfTest.both:·gc.churn.PS_Eden_Space 10 thrpt 16 479.731 ± 16.532 MB/sec
WildcardAddressManagerPerfTest.both:·gc.churn.PS_Eden_Space.norm 10 thrpt 16 725.200 ± 19.322 B/op
WildcardAddressManagerPerfTest.both:·gc.churn.PS_Survivor_Space 10 thrpt 16 0.136 ± 0.030 MB/sec
WildcardAddressManagerPerfTest.both:·gc.churn.PS_Survivor_Space.norm 10 thrpt 16 0.206 ± 0.046 B/op
WildcardAddressManagerPerfTest.both:·gc.count 10 thrpt 16 206.000 counts
WildcardAddressManagerPerfTest.both:·gc.time 10 thrpt 16 133.000 ms
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding 2 thrpt 16 1203725.581 ± 15691.820 ops/s
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding:·gc.alloc.rate 2 thrpt 16 562.709 ± 7.404 MB/sec
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding:·gc.alloc.rate.norm 2 thrpt 16 736.000 ± 0.001 B/op
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding:·gc.churn.PS_Eden_Space 2 thrpt 16 543.166 ± 14.901 MB/sec
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding:·gc.churn.PS_Eden_Space.norm 2 thrpt 16 710.489 ± 19.303 B/op
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding:·gc.churn.PS_Survivor_Space 2 thrpt 16 0.098 ± 0.040 MB/sec
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding:·gc.churn.PS_Survivor_Space.norm 2 thrpt 16 0.129 ± 0.052 B/op
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding:·gc.count 2 thrpt 16 199.000 counts
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding:·gc.time 2 thrpt 16 129.000 ms
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding 8 thrpt 16 1122261.034 ± 14717.239 ops/s
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding:·gc.alloc.rate 8 thrpt 16 533.196 ± 15.277 MB/sec
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding:·gc.alloc.rate.norm 8 thrpt 16 748.000 ± 12.619 B/op
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding:·gc.churn.PS_Eden_Space 8 thrpt 16 507.371 ± 23.859 MB/sec
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding:·gc.churn.PS_Eden_Space.norm 8 thrpt 16 711.690 ± 26.859 B/op
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding:·gc.churn.PS_Survivor_Space 8 thrpt 16 0.132 ± 0.038 MB/sec
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding:·gc.churn.PS_Survivor_Space.norm 8 thrpt 16 0.186 ± 0.054 B/op
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding:·gc.count 8 thrpt 16 193.000 counts
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding:·gc.time 8 thrpt 16 124.000 ms
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding 10 thrpt 16 1034833.124 ± 32312.193 ops/s
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding:·gc.alloc.rate 10 thrpt 16 498.329 ± 15.923 MB/sec
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding:·gc.alloc.rate.norm 10 thrpt 16 760.000 ± 0.001 B/op
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding:·gc.churn.PS_Eden_Space 10 thrpt 16 483.605 ± 20.723 MB/sec
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding:·gc.churn.PS_Eden_Space.norm 10 thrpt 16 737.753 ± 27.481 B/op
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding:·gc.churn.PS_Survivor_Space 10 thrpt 16 0.119 ± 0.042 MB/sec
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding:·gc.churn.PS_Survivor_Space.norm 10 thrpt 16 0.182 ± 0.066 B/op
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding:·gc.count 10 thrpt 16 201.000 counts
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding:·gc.time 10 thrpt 16 129.000 ms
WildcardAddressManagerPerfTest.testJustPublish 2 thrpt 16 98558204.461 ± 639664.196 ops/s
WildcardAddressManagerPerfTest.testJustPublish:·gc.alloc.rate 2 thrpt 16 ≈ 10⁻⁴ MB/sec
WildcardAddressManagerPerfTest.testJustPublish:·gc.alloc.rate.norm 2 thrpt 16 ≈ 10⁻⁵ B/op
WildcardAddressManagerPerfTest.testJustPublish:·gc.count 2 thrpt 16 ≈ 0 counts
WildcardAddressManagerPerfTest.testJustPublish 8 thrpt 16 66839293.753 ± 1325452.289 ops/s
WildcardAddressManagerPerfTest.testJustPublish:·gc.alloc.rate 8 thrpt 16 ≈ 10⁻⁴ MB/sec
WildcardAddressManagerPerfTest.testJustPublish:·gc.alloc.rate.norm 8 thrpt 16 ≈ 10⁻⁵ B/op
WildcardAddressManagerPerfTest.testJustPublish:·gc.count 8 thrpt 16 ≈ 0 counts
WildcardAddressManagerPerfTest.testJustPublish 10 thrpt 16 52801505.132 ± 655598.388 ops/s
WildcardAddressManagerPerfTest.testJustPublish:·gc.alloc.rate 10 thrpt 16 ≈ 10⁻⁴ MB/sec
WildcardAddressManagerPerfTest.testJustPublish:·gc.alloc.rate.norm 10 thrpt 16 ≈ 10⁻⁵ B/op
WildcardAddressManagerPerfTest.testJustPublish:·gc.count 10 thrpt 16 ≈ 0 counts
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [activemq-artemis] gtully commented on pull request #3382: ARTEMIS-3033 - implement address tree map for wildcards in place of l…
Posted by GitBox <gi...@apache.org>.
gtully commented on pull request #3382:
URL: https://github.com/apache/activemq-artemis/pull/3382#issuecomment-747064463
I pushed a new test to verify the dynamic/versioning is still in place.
org.apache.activemq.artemis.tests.integration.addressing.AddressingTest#testDynamicMulticastRouting
however I think I have more work to do with testing, I think I need to separate wildcard and non wildcard bindings matches on addBinding, at the moment a new wildcard bindings is being added to matching existing wildcards which is a waste and may even lead to duplicates.
more work needed. I will label this as in progress for the moment.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [activemq-artemis] gtully commented on pull request #3382: ARTEMIS-3033 - implement address tree map for wildcards in place of l…
Posted by GitBox <gi...@apache.org>.
gtully commented on pull request #3382:
URL: https://github.com/apache/activemq-artemis/pull/3382#issuecomment-746929697
@clebertsuconic the second send should go to any new binding. I can verify that, but the changes go through bindings.addBinding so that will invalidate/increment the version.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [activemq-artemis] clebertsuconic commented on pull request #3382: ARTEMIS-3033 - implement address tree map for wildcards in place of l…
Posted by GitBox <gi...@apache.org>.
clebertsuconic commented on pull request #3382:
URL: https://github.com/apache/activemq-artemis/pull/3382#issuecomment-746853472
There's a functionality of versioning on Bindings... Can you make sure that functionality is not affected when a Binding is updated?
Say, you create a producer.. send a message...
Then you update the bindings...
Send another message with the previous producer...
The output should still be valid... on the updated address..
Can you add a test doing that?
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [activemq-artemis] gtully commented on a change in pull request #3382: ARTEMIS-3033 - implement address tree map for wildcards in place of l…
Posted by GitBox <gi...@apache.org>.
gtully commented on a change in pull request #3382:
URL: https://github.com/apache/activemq-artemis/pull/3382#discussion_r552743220
##########
File path: artemis-commons/src/main/java/org/apache/activemq/artemis/api/core/SimpleString.java
##########
@@ -281,6 +283,27 @@ public String toString() {
return str;
}
+ public String[] getPaths(final char separator) {
Review comment:
that is a valid observation and probably a bug. It comes down to how and where separators are configured. if they are server wide then it ok. let me revert. thanks!
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [activemq-artemis] gtully commented on a change in pull request #3382: ARTEMIS-3033 - implement address tree map for wildcards in place of l…
Posted by GitBox <gi...@apache.org>.
gtully commented on a change in pull request #3382:
URL: https://github.com/apache/activemq-artemis/pull/3382#discussion_r552794894
##########
File path: artemis-commons/src/main/java/org/apache/activemq/artemis/api/core/SimpleString.java
##########
@@ -281,6 +283,27 @@ public String toString() {
return str;
}
+ public String[] getPaths(final char separator) {
Review comment:
It is ok, the configuration of separator is part of the server/postoffice, it won't change for the lifetime of an instance. I will add a comment to that effect.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [activemq-artemis] clebertsuconic commented on a change in pull request #3382: ARTEMIS-3033 - implement address tree map for wildcards in place of l…
Posted by GitBox <gi...@apache.org>.
clebertsuconic commented on a change in pull request #3382:
URL: https://github.com/apache/activemq-artemis/pull/3382#discussion_r552737997
##########
File path: artemis-commons/src/main/java/org/apache/activemq/artemis/api/core/SimpleString.java
##########
@@ -281,6 +283,27 @@ public String toString() {
return str;
}
+ public String[] getPaths(final char separator) {
Review comment:
this is probably nit picking...
but if you called getPaths('.')
and then getPaths('/');
the second one would return the paths from the previous one.
Should we care about that? or just add docs about it?
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [activemq-artemis] gtully commented on pull request #3382: ARTEMIS-3033 - implement address tree map for wildcards in place of l…
Posted by GitBox <gi...@apache.org>.
gtully commented on pull request #3382:
URL: https://github.com/apache/activemq-artemis/pull/3382#issuecomment-747435038
I have found an issue with redundant traversal of the tree, that can lead to duplicates. The zero or more # behaviour in the map and on the search path causes double traversal.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [activemq-artemis] gtully commented on a change in pull request #3382: ARTEMIS-3033 - implement address tree map for wildcards in place of l…
Posted by GitBox <gi...@apache.org>.
gtully commented on a change in pull request #3382:
URL: https://github.com/apache/activemq-artemis/pull/3382#discussion_r552838757
##########
File path: artemis-commons/src/main/java/org/apache/activemq/artemis/api/core/SimpleString.java
##########
@@ -281,6 +283,27 @@ public String toString() {
return str;
}
+ public String[] getPaths(final char separator) {
Review comment:
darn, I needed a refresh. Either comment is fine :-)
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [activemq-artemis] clebertsuconic commented on pull request #3382: ARTEMIS-3033 - implement address tree map for wildcards in place of l…
Posted by GitBox <gi...@apache.org>.
clebertsuconic commented on pull request #3382:
URL: https://github.com/apache/activemq-artemis/pull/3382#issuecomment-755539839
@gtully failures on this PR:
I'm not sure if LiveToLiveFailoverTest is related to this change or an intermittent failure. It seems to be related though as I had it failing somewhere else as well.
Can you take care of these failures.. see if there's anything more substantial that needs to be taken care of? Let me know if you need help on any of these:
Duration
Age
org.apache.activemq.artemis.tests.integration.cluster.failover.LiveToLiveFailoverTest.testXAMessagesNotSentSoNoRollbackOnCommit 3.5 sec 1
org.apache.activemq.artemis.tests.integration.cluster.failover.ReplicatedMultipleServerFailoverExtraBackupsTest.testStartLiveFirst 1 min 4 sec 1
org.apache.activemq.artemis.tests.integration.management.ActiveMQServerControlTest.testListQueues[legacyCreateQueue=true] 55 ms 1
org.apache.activemq.artemis.tests.integration.management.ActiveMQServerControlTest.testListQueues[legacyCreateQueue=false] 72 ms 1
org.apache.activemq.artemis.tests.integration.management.ActiveMQServerControlUsingCoreTest.testListQueues[legacyCreateQueue=true] 68 ms 1
org.apache.activemq.artemis.tests.integration.management.ActiveMQServerControlUsingCoreTest.testListQueues[legacyCreateQueue=false] 60 ms 1
org.apache.activemq.artemis.tests.integration.plugin.FederationBrokerPluginTest.testFederationStreamConsumerQueueDownstream 9 sec 1
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [activemq-artemis] gtully commented on pull request #3382: ARTEMIS-3033 - implement address tree map for wildcards in place of l…
Posted by GitBox <gi...@apache.org>.
gtully commented on pull request #3382:
URL: https://github.com/apache/activemq-artemis/pull/3382#issuecomment-755641840
the failures in org.apache.activemq.artemis.tests.integration.management are now resolved on trunk, they were caused by the previous commit for: ARTEMIS-3043
I cannot locally reproduce any of the other failures, on trunk or my branch. Will try some more to reproduce, but it looks like those are flaky.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [activemq-artemis] gtully commented on a change in pull request #3382: ARTEMIS-3033 - implement address tree map for wildcards in place of l…
Posted by GitBox <gi...@apache.org>.
gtully commented on a change in pull request #3382:
URL: https://github.com/apache/activemq-artemis/pull/3382#discussion_r552828398
##########
File path: artemis-commons/src/main/java/org/apache/activemq/artemis/api/core/SimpleString.java
##########
@@ -281,6 +283,27 @@ public String toString() {
return str;
}
+ public String[] getPaths(final char separator) {
Review comment:
rebased and added some javadoc to that getPaths
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [activemq-artemis] franz1981 commented on pull request #3382: ARTEMIS-3033 - implement address tree map for wildcards in place of l…
Posted by GitBox <gi...@apache.org>.
franz1981 commented on pull request #3382:
URL: https://github.com/apache/activemq-artemis/pull/3382#issuecomment-746220287
I suggest to run the benchs pre/post this PR, possibly by setting a fixed CPU Freq on an idle machine
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [activemq-artemis] clebertsuconic commented on a change in pull request #3382: ARTEMIS-3033 - implement address tree map for wildcards in place of l…
Posted by GitBox <gi...@apache.org>.
clebertsuconic commented on a change in pull request #3382:
URL: https://github.com/apache/activemq-artemis/pull/3382#discussion_r552800347
##########
File path: artemis-commons/src/main/java/org/apache/activemq/artemis/api/core/SimpleString.java
##########
@@ -281,6 +283,27 @@ public String toString() {
return str;
}
+ public String[] getPaths(final char separator) {
Review comment:
@gtully is that ok if I amend your commit with the following java doc:
```java
/** Notice this method will cache the result of getPaths, subsequent calls will return the same result even if you passed in a new separator.
On the broker usage, the same separator from a configuration, which will change only upon restart. If you use this method outside of this context beware with that caveat. */
public String[] getPaths(final char separator) {
```
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [activemq-artemis] clebertsuconic edited a comment on pull request #3382: ARTEMIS-3033 - implement address tree map for wildcards in place of l…
Posted by GitBox <gi...@apache.org>.
clebertsuconic edited a comment on pull request #3382:
URL: https://github.com/apache/activemq-artemis/pull/3382#issuecomment-755539839
@gtully failures on this PR:
I'm not sure if LiveToLiveFailoverTest is related to this change or an intermittent failure. It seems to be related though as I had it failing somewhere else as well.
Can you take care of these failures.. see if there's anything more substantial that needs to be taken care of? Let me know if you need help on any of these:
Test Name | Duration | Age
-- | -- | --
org.apache.activemq.artemis.tests.integration.cluster.failover.LiveToLiveFailoverTest.testXAMessagesNotSentSoNoRollbackOnCommit | 3.5 sec | 1
org.apache.activemq.artemis.tests.integration.cluster.failover.ReplicatedMultipleServerFailoverExtraBackupsTest.testStartLiveFirst | 1 min 4 sec | 1
org.apache.activemq.artemis.tests.integration.management.ActiveMQServerControlTest.testListQueues[legacyCreateQueue=true] | 55 ms | 1
org.apache.activemq.artemis.tests.integration.management.ActiveMQServerControlTest.testListQueues[legacyCreateQueue=false] | 72 ms | 1
org.apache.activemq.artemis.tests.integration.management.ActiveMQServerControlUsingCoreTest.testListQueues[legacyCreateQueue=true] | 68 ms | 1
org.apache.activemq.artemis.tests.integration.management.ActiveMQServerControlUsingCoreTest.testListQueues[legacyCreateQueue=false] | 60 ms | 1
org.apache.activemq.artemis.tests.integration.plugin.FederationBrokerPluginTest.testFederationStreamConsumerQueueDownstream | 9 sec | 1
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [activemq-artemis] asfgit closed pull request #3382: ARTEMIS-3033 - implement address tree map for wildcards in place of l…
Posted by GitBox <gi...@apache.org>.
asfgit closed pull request #3382:
URL: https://github.com/apache/activemq-artemis/pull/3382
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [activemq-artemis] gtully commented on pull request #3382: ARTEMIS-3033 - implement address tree map for wildcards in place of l…
Posted by GitBox <gi...@apache.org>.
gtully commented on pull request #3382:
URL: https://github.com/apache/activemq-artemis/pull/3382#issuecomment-754063113
Existing bench with single level wildcard replacement is a little better, which is good.
```
// 3033
Benchmark (topicsLog2) Mode Cnt Score Error Units
WildcardAddressManagerPerfTest.both 2 thrpt 16 153025360.863 ± 10870687.690 ops/s
WildcardAddressManagerPerfTest.both:testAddRemoveNewBindingWhilePublish 2 thrpt 16 488923.203 ± 28206.384 ops/s
WildcardAddressManagerPerfTest.both:testPublishWhileAddRemoveNewBinding 2 thrpt 16 152536437.660 ± 10842986.529 ops/s
WildcardAddressManagerPerfTest.both 8 thrpt 16 94879809.481 ± 4895966.910 ops/s
WildcardAddressManagerPerfTest.both:testAddRemoveNewBindingWhilePublish 8 thrpt 16 6893.444 ± 642.194 ops/s
WildcardAddressManagerPerfTest.both:testPublishWhileAddRemoveNewBinding 8 thrpt 16 94872916.037 ± 4895684.105 ops/s
WildcardAddressManagerPerfTest.both 10 thrpt 16 51025262.895 ± 1395399.352 ops/s
WildcardAddressManagerPerfTest.both:testAddRemoveNewBindingWhilePublish 10 thrpt 16 1401.174 ± 45.025 ops/s
WildcardAddressManagerPerfTest.both:testPublishWhileAddRemoveNewBinding 10 thrpt 16 51023861.721 ± 1395360.683 ops/s
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding 2 thrpt 16 754500.862 ± 8368.497 ops/s
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding 8 thrpt 16 15644.734 ± 437.381 ops/s
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding 10 thrpt 16 2622.618 ± 60.187 ops/s
WildcardAddressManagerPerfTest.testJustPublish 2 thrpt 16 315934184.806 ± 3713744.615 ops/s
WildcardAddressManagerPerfTest.testJustPublish 8 thrpt 16 191475282.682 ± 4412787.311 ops/s
WildcardAddressManagerPerfTest.testJustPublish 10 thrpt 16 101240945.263 ± 2136745.323 ops/s
// master
Benchmark (topicsLog2) Mode Cnt Score Error Units
WildcardAddressManagerPerfTest.both 2 thrpt 16 137526041.788 ± 16479481.530 ops/s
WildcardAddressManagerPerfTest.both:testAddRemoveNewBindingWhilePublish 2 thrpt 16 476544.291 ± 14515.866 ops/s
WildcardAddressManagerPerfTest.both:testPublishWhileAddRemoveNewBinding 2 thrpt 16 137049497.498 ± 16492747.420 ops/s
WildcardAddressManagerPerfTest.both 8 thrpt 16 87208120.237 ± 2239804.722 ops/s
WildcardAddressManagerPerfTest.both:testAddRemoveNewBindingWhilePublish 8 thrpt 16 7341.626 ± 720.925 ops/s
WildcardAddressManagerPerfTest.both:testPublishWhileAddRemoveNewBinding 8 thrpt 16 87200778.611 ± 2240123.624 ops/s
WildcardAddressManagerPerfTest.both 10 thrpt 16 57880805.032 ± 2910949.415 ops/s
WildcardAddressManagerPerfTest.both:testAddRemoveNewBindingWhilePublish 10 thrpt 16 1336.878 ± 37.156 ops/s
WildcardAddressManagerPerfTest.both:testPublishWhileAddRemoveNewBinding 10 thrpt 16 57879468.154 ± 2910945.178 ops/s
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding 2 thrpt 16 780274.004 ± 31480.963 ops/s
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding 8 thrpt 16 14534.014 ± 471.738 ops/s
WildcardAddressManagerPerfTest.testJustAddRemoveNewBinding 10 thrpt 16 2487.679 ± 28.397 ops/s
WildcardAddressManagerPerfTest.testJustPublish 2 thrpt 16 308437100.189 ± 7379770.320 ops/s
WildcardAddressManagerPerfTest.testJustPublish 8 thrpt 16 186674204.667 ± 6657683.927 ops/s
WildcardAddressManagerPerfTest.testJustPublish 10 thrpt 16 119914491.302 ± 2044544.076 ops/s
```
New bench that partitions the topics into a three level hierarchy is better, which is the intent. The search space for wildcard matches is now partitioned with the hierarchy.
```
// 3033
Benchmark (topicsLog2) (verifyWildcardBinding) Mode Cnt Score Error Units
WildcardAddressManagerHeirarchyPerfTest.testJustAddRemoveNewBinding 2 true thrpt 16 1994195.532 ± 108586.553 ops/s
WildcardAddressManagerHeirarchyPerfTest.testJustAddRemoveNewBinding 2 false thrpt 16 1746942.978 ± 67944.567 ops/s
WildcardAddressManagerHeirarchyPerfTest.testJustAddRemoveNewBinding 8 true thrpt 16 2116849.768 ± 84728.928 ops/s
WildcardAddressManagerHeirarchyPerfTest.testJustAddRemoveNewBinding 8 false thrpt 16 2073001.438 ± 68285.668 ops/s
WildcardAddressManagerHeirarchyPerfTest.testJustAddRemoveNewBinding 10 true thrpt 16 2008927.510 ± 42381.877 ops/s
WildcardAddressManagerHeirarchyPerfTest.testJustAddRemoveNewBinding 10 false thrpt 16 2137536.688 ± 89880.677 ops/s
// master
Benchmark (topicsLog2) (verifyWildcardBinding) Mode Cnt Score Error Units
WildcardAddressManagerHeirarchyPerfTest.testJustAddRemoveNewBinding 2 true thrpt 16 859396.064 ± 25131.702 ops/s
WildcardAddressManagerHeirarchyPerfTest.testJustAddRemoveNewBinding 2 false thrpt 16 766124.451 ± 13220.750 ops/s
WildcardAddressManagerHeirarchyPerfTest.testJustAddRemoveNewBinding 8 true thrpt 16 106603.948 ± 1825.888 ops/s
WildcardAddressManagerHeirarchyPerfTest.testJustAddRemoveNewBinding 8 false thrpt 16 96208.726 ± 1701.837 ops/s
WildcardAddressManagerHeirarchyPerfTest.testJustAddRemoveNewBinding 10 true thrpt 16 22201.436 ± 511.619 ops/s
WildcardAddressManagerHeirarchyPerfTest.testJustAddRemoveNewBinding 10 false thrpt 16 20186.708 ± 614.621 ops/s
```
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org