Github user arunmahadevan commented on the issue:
    Managing threadpools within a bolt isn't fundamentally wrong, we have see 
some use cases where this is done. However, we have been putting efforts to 
reduce the overall number of threads created  internally within storm since the 
thread context switches were causing performance bottlenecks. I assume the 
threadpool threads are mostly IO/network bound so it should not cause too much 
    Do you need multiple threads since the enrichments involve external DB look 
ups and are time consuming ?  Maybe you could compare the performance of 
maintaining a thread pool v/s increasing the bolt's parallelism to achieve a 
similar effect. 
    Another option might be to prefetch the enrichment data and load it into 
each bolt so that you might not need separate threads to do the enrichment.
    If you are able to manage without threads, that would be preferable. Even 
otherwise its not that bad as long as you don't create too many threads and 
they are cleaned up properly. (we have had some cases were the internal threads 
were causing workers to hang).


Reply via email to