Github user danny0405 commented on the issue:
https://github.com/apache/storm/pull/2800
@srdo @zd-project
Thx for your explanation, that make sense for me.
One thing needs to clarify is that `executorBeats` parameter for
`StatsUtil#updateHeartbeatCache` is null for every scheduling round of master
in order to refresh the `is-timed-out` flag.
There does have possibility that supervisor/worker will walk into code
branch:
https://github.com/apache/storm/blob/4c42ee3d259d5d90a4e7d3445d1c119601eec6c7/storm-client/src/jvm/org/apache/storm/stats/StatsUtil.java#L1576-L1579
and Nimbus the other:
https://github.com/apache/storm/blob/4c42ee3d259d5d90a4e7d3445d1c119601eec6c7/storm-client/src/jvm/org/apache/storm/stats/StatsUtil.java#L1568-L1574
I think the key here is we used a `forEach` interation for the cache, so
here, we could change it to a iterator loop, which is okey cause we only need
final consistency instead of ConcurrentMap or copy which will cause perf
regression.
---