Github user roshannaik commented on the pull request:

    https://github.com/apache/storm/pull/1217#issuecomment-197551650
  
    @abhishekagarwal87  
    This perf hit of 7-9% exists even if user does not enable logging from the 
UI.   With logging enabled, it should be even higher.
    
    @arunmahadevan 
    The perf improvement i described here is observed when going from the 
default value nil to 0 for topology.eventlogger.executors 
    
    **Topology detail:** 1 spout, 1 bolt, 1 acker. Spout generates random 
numbers. Bolt does this math on the tuple:  (value+1)*2.    In effect this is 
just a speed of light topology.
    
    The perf hit that i noted is actually due to those very same checking of 
flag.
    This checking of flags in clojure turns into very expensive lookups in 
clojure internals. It internally invokes Java reflection!  If you are thinking 
'what the hell'.. then yes that was my reaction too.   
    
    Specifically this is the problematic lookup for this code path :  
'storm-component->debug-atom' 
    
    I agree with @arunmahadevan 's  concern that this will confuse the users 
when they don't see logs after enabling it on the UI. 
    
    The alternative fix for this is to change the manner in which this flag is 
made available to the code. Basically make it more efficient.
    
    There are some other lookups in the critical path that are also are causing 
perf hits... which i plan to address in a separate jira.
    
    
    



---
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 infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to