GitHub user mgrzenda opened a pull request:

    https://github.com/apache/incubator-samoa/pull/68

    SAMOA-71: fixes concurrency issues in HorizontalAMRulesRegressor

    I suggest a change in ruleSet implementation from LinkedList (providing 
fail-fast iterators, which causes ConcurrencyException when list content 
changes during iterating over it) to CopyOnWriteArrayList (which is a 
thread-safe variant eliminating concurrency exceptions). In the analysed case, 
the modifications to ruleSet are expected to be much less frequent than reading 
the rules. When the number of read operations is relatively large and update 
operations are far less frequent, a possible choice is CopyOnWriteArrayList.
    
    I have compared the performance on 35k instance streams (with a higher than 
35k number concurrency exception got thrown) and got the same <1 second 
processing time. Hence, the possible negative impact on the performance can be 
considered negligible, if any. Still, suggestions and possible other solution 
ideas from designers of AMRules are welcome.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/mgrzenda/incubator-samoa SAMOA-71

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/incubator-samoa/pull/68.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #68
    
----
commit b2ebe028bf2fc24b9f41605d5075f6706c6e6e3d
Author: Maciej Grzenda <[email protected]>
Date:   2017-07-19T13:12:35Z

    SAMOA-71: fixes concurrency issues in HorizontalAMRulesRegressor

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to