[
https://issues.apache.org/jira/browse/ARTEMIS-3033?focusedWorklogId=530743&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-530743
]
ASF GitHub Bot logged work on ARTEMIS-3033:
-------------------------------------------
Author: ASF GitHub Bot
Created on: 04/Jan/21 16:06
Start Date: 04/Jan/21 16:06
Worklog Time Spent: 10m
Work Description: 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:
[email protected]
Issue Time Tracking
-------------------
Worklog Id: (was: 530743)
Time Spent: 1.5h (was: 1h 20m)
> use a structured tree with visitors for wildcard addresses to avoid duplicate
> cross linking in address impl
> -----------------------------------------------------------------------------------------------------------
>
> Key: ARTEMIS-3033
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3033
> Project: ActiveMQ Artemis
> Issue Type: Improvement
> Components: Broker
> Affects Versions: 2.16.0
> Reporter: Gary Tully
> Assignee: Gary Tully
> Priority: Major
> Fix For: 2.17.0
>
> Time Spent: 1.5h
> Remaining Estimate: 0h
>
> This follows up on ARTEMIS-2990 to address the underlying data structure for
> the wildcard address map. In place of a map of addresses with lists of cross
> references (which grow linearly), a tree map reflecting the hierarchy of
> addresses and wildcards is used. This partitions the search space in a
> natural way with the address hierarchy.
> in place of collections, a visitor allows access to contained bindings for
> processing allowing parallel work.
> the read and update paths to access bindings are also separated out to allow
> the read to do minimum work.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)