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