Github user HeartSaVioR commented on the issue:
https://github.com/apache/storm/pull/2203
@revans2 @ptgoetz
Looks like string concatenation affects a lot. Maybe we should spend time
to optimize here.
One sketched idea is here: If metric name is deterministic at least without
stream id and the metric type (acked, etc.), we might be able to cache metric
name for each executor so that we can apply stream id and metric type
afterwards. The streamId/metric type to full metric name can be cached to map
in executor too. The issue could be changed to one level Hashmap lookup via
string concatenation for (type+streamId) or two level Hashmap lookup (type ->
streamId) vs String concatenation.
The result of dotToUnderscore is encouraged to be cached instead of doing
it all the time.
Not sure how much it helps, but we could have executor level metric
instance map (cache) instead of completely relying on coda hale REGISTRY if it
helps.
cc. @roshannaik since he is working for optimizations so might have some
techniques to apply.
---