Github user roshannaik commented on the issue:

    https://github.com/apache/storm/pull/2241
  
    @revans2 
    
    About that  "better than sliced bread" : 
    how could i not be offended.. at least briefly  ;-) but you could buy me 
lunch if this PR turns out better than you were initially afraid of. It  was 
perhaps a very "low latency" -1 for any PR in the history of Storm. :-) 
    
    Yes there are rough edges and some bugs... but I do dream of being able 
nail it all the way in one go. 
    
    Your observation about the **very high latency for low throughput** topos. 
That is clearly a problem with batch not filling up and not getting flushed. 
The 5 sec latency corresponds to the 'topology.flush.tuple.freq.millis' setting 
(default 5sec). So at each step between Spout->Bolt and Bolt->Bolt if the its 
waiting for 5 sec then you are likely to see such ridiculous latency numbers.
    
    Given that, I think the solution must be evident by now ...  but will state 
it here for the benefit of other readers to whom it may not be:
    
    Tweak one or both of  these two settings:
    - **topology.producer.batch.size** : for low throughput topos setting this 
to 1 is a good idea. In the new system the throughput penalty is not that for a 
small batch much compared to larger batch size.  
    - **topology.flush.tuple.freq.millis**: You could reduce this for more 
frequent batch flushing. It causes the timer thread to take up more cpu... but 
if throughput fluctuates between very and very low over the day, then is 
setting maybe better to meet latency SLA.



---
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