Github user roshannaik commented on the issue:

    https://github.com/apache/storm/pull/2829
  
    @HeartSaVioR  
    
    1) pendingEmitsQ prevents nextTuple() from blocking when downstream queue 
is full.   It holds the overflow emits  (one or more) that occurred within a 
**single** nextTuple() invocation.  If Spout executor notices this Q is not 
empty, it will try to process any ACKs before entering wait strategy. Purpose 
of this Q is to prevent deadlock under BP. 
    
    2) **topology.max.spout.pending**  Looked like a candidate for elimination 
given that STORM-2306's BP. Although it is not absolutely necessary to use it 
in 2.0.. during benchmarking I noticed that it could sometimes have sizable 
impact on performance. Why ? it remains a mystery. It is now a perf related 
tunable (in ACK mode).. and not really a BP mechanism.


---

Reply via email to