Hi, 

I have downloaded and observed the code of the BalancingPool class from the 
Akka trunc on github (g...@github.com:akka/akka.git). 

Of course, although often described as "work stealing", the code 
documentation says it is rather more a work donating routing strategy:
 
 * Although the technique used in this implementation is commonly known as 
"work 
stealing", the
 * actual implementation is probably best described as "work donating" 
because the actor of which
 * work is being stolen takes the initiative.

However I have been unsuccessful at locating how exactly that is 
implemented. The following routing class and its supertype seem to present 
very little sophistication..

private[akka] final class BalancingRoutingLogic extends RoutingLogic {
  override def select(message: Any, routees: immutable.IndexedSeq[Routee]): 
Routee =
    if (routees.isEmpty) NoRoutee
    else routees.head
}


So I am definitely looking at the wrong place. Can you please point me at 
the code taking care of the work stealing/donation of a BalancingPool 
router? I need to create my own routing logic, and was looking to see how I 
can preserve the balancing properties of that implementation (any other 
built-in router that's good for balancing load between local actors would 
be of equal relevance in this). I will probably implement a parent actor 
rather than a modified router, but this looked like a good place to look at 
first. 

Further to my specific case, I would need to manage a pool of actors that 
entail heavy cpu-intensive initialization each, whereby they are 
initialized with a varying seed argument value, and thereafter the parent 
actor, should route each incoming message to an actor that had been 
initialized with the same seed parameter. So essentially I would elude slow 
initialization by routing messages to suitably already-initialized actors. 

I would also expire actors that have not been used for a configurable 
while, so that least-popular initialization seeds do not take hold of an 
actor for long. 

Thanks,
Matan



I would need to add and remove actors in a cache-like manner, where actors 

Thanks,
Matan

-- 
>>>>>>>>>>      Read the docs: http://akka.io/docs/
>>>>>>>>>>      Check the FAQ: 
>>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>>      Search the archives: https://groups.google.com/group/akka-user
--- 
You received this message because you are subscribed to the Google Groups "Akka 
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to akka-user+unsubscr...@googlegroups.com.
To post to this group, send email to akka-user@googlegroups.com.
Visit this group at http://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.

Reply via email to