Renkai,
The execution models between storm and akka are rather different.  Storm has 
dedicated threads for each executor, although multiple tasks (bolt/spout 
instances) can share the same executor thread.  We rely on the OS to do the 
right thing in scheduling threads to run.  Akka is using an actor model.  The 
dispatcher essentially provides a thread pool for all of the actors to share.  
Instead of allowing the OS to do all of the context switching they use the 
dispatcher to decide in many cases when one actor should stop executing and 
another should start.  Currently storm tends to run with latency in mind over 
throughput, but we are working on adding in tuning knobs to allow for more 
throughput at the expense of some latency.  However the ultimate goal is to get 
to the point where you tell storm the constraints you have in terms of latency, 
throughput, and cost and let storm work to optimize the topology to meet those 
desires.  This is still a ways out, but to me feels much more user friendly 
then trying to figure out what the batch size should be for a given actor 
manually.
 - Bobby 


     On Sunday, October 18, 2015 10:03 AM, Renkai <[email protected]> wrote:
   

 Hi all:
I am a storm user for one year and now I am learning Akka. I found something 
interesting in Akka that it could config its dispatcher(see 
http://doc.akka.io/docs/akka/2.4.0/scala/dispatchers.html). I think it is 
useful for tuning performance and storm seems missing something like that.



  

Reply via email to