[
https://issues.apache.org/jira/browse/STORM-1650?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15208469#comment-15208469
]
ASF GitHub Bot commented on STORM-1650:
---------------------------------------
Github user revans2 commented on a diff in the pull request:
https://github.com/apache/storm/pull/1250#discussion_r57166147
--- Diff: storm-core/src/clj/org/apache/storm/daemon/executor.clj ---
@@ -508,7 +509,7 @@
^Integer max-spout-pending (if max-spout-pending (int
max-spout-pending))
last-active (atom false)
spouts (ArrayList. (map :object (vals task-datas)))
- rand (Random. (Utils/secureRandomLong))
+ rand (XORShiftRandom. (Utils/secureRandomLong))
--- End diff --
We cannot use a thread local random here, because it is placed into
functions that are not called from a single thread. What is more the
implementation of XORShiftRandom is that if we do lose the race, it is likely
that we will repeat a number which could result in tuples not being tracked
properly.
> improve performance by XORShiftRandom
> -------------------------------------
>
> Key: STORM-1650
> URL: https://issues.apache.org/jira/browse/STORM-1650
> Project: Apache Storm
> Issue Type: Improvement
> Reporter: John Fang
> Assignee: John Fang
>
> '''Implement a random number generator based on the XORShift algorithm
> discovered by George Marsaglia. This RNG is observed 4.5 times faster than
> {@link Random} in benchmark, with the cost that abandon thread-safety. So
> it's recommended to create a new {@link XORShiftRandom} for each thread.'''
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)