How does BalancingDispatcher interact with routers?

1,029 views
Skip to first unread message

Paul Butcher

unread,
Jan 20, 2013, 9:19:22 AM1/20/13
to akka...@googlegroups.com
The section on BalancingDispatcher in Derek's book, and this blog post:


both present BalancingDispatcher as an alternative to SmallestMailboxRouter. But (I believe I'm right in saying) although BalancingDispatcher is in some sense an alternative to a router, it still needs to work in conjunction with a router? So, for example, to create a set of 4 workers I might write:

  val workers = system.actorOf(Props[Worker].withRouter(RoundRobinRouter(4)).
    withDispatcher("worker-dispatcher"), "worker")

where worker-dispatcher is defined in application.conf as:

worker-dispatcher {
  type = BalancingDispatcher
}

So my question is - what is the RoundRobinRouter actually doing in this example? Clearly it's creating the actors, but is it actually doing any routing? Or is that part of its functionality redundant because it's being used with a BalancingDispatcher? What would happen if I changed to (say) a SmallestMailboxRouter or some other type of router?

--
paul.butcher->msgCount++

Snetterton, Castle Combe, Cadwell Park...
Who says I have a one track mind?

http://www.paulbutcher.com/
LinkedIn: http://www.linkedin.com/in/paulbutcher
MSN: pa...@paulbutcher.com
AIM: paulrabutcher
Skype: paulrabutcher

Akka Team

unread,
Jan 21, 2013, 7:05:43 AM1/21/13
to akka...@googlegroups.com
Hi Paul!

As the actors in the BalancingDispatcher will share the mailbox, the
router here is redundant :)

Cheers,
-Endre

Paul Butcher

unread,
Jan 21, 2013, 7:24:28 AM1/21/13
to akka...@googlegroups.com
On 21 Jan 2013, at 12:05, Akka Team <akka.o...@gmail.com> wrote:

As the actors in the BalancingDispatcher will share the mailbox, the
router here is redundant :)

Thanks - good to know that I'm not completely misunderstanding things :-)

So, to answer the questions in my mail:

a) It's redundant as far as routing is concerned, but still necessary because it's what creates the actors?

b) There would be no difference between using RoundRobinRouter and SmallestMailboxRouter, or for that matter any other router?

--
paul.butcher->msgCount++

Snetterton, Castle Combe, Cadwell Park...
Who says I have a one track mind?

http://www.paulbutcher.com/
LinkedIn: http://www.linkedin.com/in/paulbutcher
MSN: pa...@paulbutcher.com
AIM: paulrabutcher
Skype: paulrabutcher

--
    Read the docs: http://akka.io/docs/
    Check the FAQ: http://akka.io/faq/
    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 post to this group, send email to akka...@googlegroups.com.
To unsubscribe from this group, send email to akka-user+...@googlegroups.com.
Visit this group at http://groups.google.com/group/akka-user?hl=en.



Akka Team

unread,
Jan 21, 2013, 8:45:02 AM1/21/13
to akka...@googlegroups.com
Hi Paul!

a) It is not necessary to have a router as all the actors configured
with the given BalancingDispatcher will share the mailbox. Excerpt
from doc: "i.e. the actors belong to a pool of actors, and to the
client there is no guarantee about which actor instance actually
processes a given message.".

b) I think not. BalancingDispatcher is a very strange one, and needs
some care when used.

Cheers,
-Endre

Paul Butcher

unread,
Jan 21, 2013, 10:13:17 AM1/21/13
to akka...@googlegroups.com
a) It is not necessary to have a router as all the actors configured
with the given BalancingDispatcher will share the mailbox. Excerpt
from doc: "i.e. the actors belong to a pool of actors, and to the
client there is no guarantee about which actor instance actually
processes a given message.".

If I create my actors by hand, sure. But a router does more than just route - it also creates actors for me and allows the number of actors created to be configured from application.conf and/or resized with a resizer. Is there something that isn't a router that will provide the same functionality and that can be used with BalancingDispatcher?

b) I think not. BalancingDispatcher is a very strange one, and needs
some care when used.

Understood. That's exactly why I'm asking these questions - I want to make sure that I really do understand what I'm doing!

It would be extremely helpful if there were an actual, concrete example of how to use BalancingDispatcher. Right now I'm having to piece things together from the documentation and a few blog posts. I've not been able to find an example of working code using BalancingDispatcher anywhere (I'd be very grateful for a pointer to any if I'm missing it).

Akka Team

unread,
Jan 21, 2013, 11:02:27 AM1/21/13
to akka...@googlegroups.com
Hi Paul!

> If I create my actors by hand, sure. But a router does more than just route
> - it also creates actors for me and allows the number of actors created to
> be configured from application.conf and/or resized with a resizer. Is there
> something that isn't a router that will provide the same functionality and
> that can be used with BalancingDispatcher?

I am not sure I understand properly what you mean by "isn't a router
that will provide the same functionality".

> It would be extremely helpful if there were an actual, concrete example of
> how to use BalancingDispatcher. Right now I'm having to piece things
> together from the documentation and a few blog posts. I've not been able to
> find an example of working code using BalancingDispatcher anywhere (I'd be
> very grateful for a pointer to any if I'm missing it).

Thank you for pointing out! I added a ticket:
https://www.assembla.com/spaces/akka/tickets/2927-add-detailed-documentation-for-balancingdispatcher

Cheers,
-Endre

Jonas Bonér

unread,
Jan 21, 2013, 11:11:17 AM1/21/13
to akka...@googlegroups.com
To give some historic context;
The balancing dispatcher (formerly called WorkStealingDispatcher)
pre-dates all of the routers [1].
I don't know if we would have added it today in the context rich
router API we now have.
It surely confuses the picture.

[1] http://janvanbesien.blogspot.se/2010/03/load-balancing-actors-with-work.html
> --
>>>>>>>>>>> Read the docs: http://akka.io/docs/
>>>>>>>>>>> Check the FAQ: http://akka.io/faq/
>>>>>>>>>>> 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 post to this group, send email to akka...@googlegroups.com.
> To unsubscribe from this group, send email to akka-user+...@googlegroups.com.
> Visit this group at http://groups.google.com/group/akka-user?hl=en.
>
>



--
Jonas Bonér
Phone: +46 733 777 123
Home: http://jonasboner.com
Twitter: @jboner

√iktor Ҡlang

unread,
Jan 21, 2013, 11:16:55 AM1/21/13
to Akka User List
Also, the original version used to be work-donating instead of work-sharing (which it is now).

Perhaps time we let it retire?

Cheers,
Viktor Klang
Director of Engineering

Typesafe - The software stack for applications that scale
Twitter: @viktorklang

Paul Butcher

unread,
Jan 21, 2013, 11:21:14 AM1/21/13
to akka...@googlegroups.com
On 21 Jan 2013, at 16:02, Akka Team <akka.o...@gmail.com> wrote:

If I create my actors by hand, sure. But a router does more than just route
- it also creates actors for me and allows the number of actors created to
be configured from application.conf and/or resized with a resizer. Is there
something that isn't a router that will provide the same functionality and
that can be used with BalancingDispatcher?

I am not sure I understand properly what you mean by "isn't a router
that will provide the same functionality".

Right now, if I want to create a set of actors behind a BalancingDispatcher, where the number of actors is configured in application.conf, I can do:

system.actorOf(Props[Worker].withRouter(FromConfig()).withDispatcher("my-balancing-dispatcher"), "my-router")

What should I replace the ".withRouter(FromConfig()) to achieve same thing, without using a router?

Jonas Bonér

unread,
Jan 21, 2013, 11:22:39 AM1/21/13
to akka...@googlegroups.com
On Mon, Jan 21, 2013 at 5:16 PM, √iktor Ҡlang <viktor...@gmail.com> wrote:
> Also, the original version used to be work-donating instead of work-sharing
> (which it is now).

That is true.

>
> Perhaps time we let it retire?

See the comment I made 10 min ago:
https://www.assembla.com/spaces/akka/tickets/2927#/activity/ticket:

Paul Butcher

unread,
Jan 21, 2013, 11:24:12 AM1/21/13
to akka...@googlegroups.com
I certainly buy that it's confusing (speaking as one who is currently confused ;-)

However, I'm not sure that I see a readily available equivalent. As Derek points out in his book, and this blog post:


SmallestMailboxRouter is *similar* but not the same. Are you suggesting that SmallestMailboxRouter is "close enough"? Or is there something else that I should look at?

--
paul.butcher->msgCount++

Snetterton, Castle Combe, Cadwell Park...
Who says I have a one track mind?

http://www.paulbutcher.com/
LinkedIn: http://www.linkedin.com/in/paulbutcher
MSN: pa...@paulbutcher.com
AIM: paulrabutcher
Skype: paulrabutcher

√iktor Ҡlang

unread,
Jan 21, 2013, 11:25:01 AM1/21/13
to Akka User List
On Mon, Jan 21, 2013 at 5:22 PM, Jonas Bonér <jo...@jonasboner.com> wrote:
On Mon, Jan 21, 2013 at 5:16 PM, √iktor Ҡlang <viktor...@gmail.com> wrote:
> Also, the original version used to be work-donating instead of work-sharing
> (which it is now).

That is true.

I speak the truth :-)
 

>
> Perhaps time we let it retire?

See the comment I made 10 min ago:
https://www.assembla.com/spaces/akka/tickets/2927#/activity/ticket:


Commented.

Jonas Bonér

unread,
Jan 21, 2013, 11:26:24 AM1/21/13
to akka...@googlegroups.com
On Mon, Jan 21, 2013 at 5:25 PM, √iktor Ҡlang <viktor...@gmail.com> wrote:
>
>
>
> On Mon, Jan 21, 2013 at 5:22 PM, Jonas Bonér <jo...@jonasboner.com> wrote:
>>
>> On Mon, Jan 21, 2013 at 5:16 PM, √iktor Ҡlang <viktor...@gmail.com>
>> wrote:
>> > Also, the original version used to be work-donating instead of
>> > work-sharing
>> > (which it is now).
>>
>> That is true.

But it was still called WorkStealing*.

√iktor Ҡlang

unread,
Jan 21, 2013, 11:28:13 AM1/21/13
to Akka User List
On Mon, Jan 21, 2013 at 5:26 PM, Jonas Bonér <jo...@jonasboner.com> wrote:
On Mon, Jan 21, 2013 at 5:25 PM, √iktor Ҡlang <viktor...@gmail.com> wrote:
>
>
>
> On Mon, Jan 21, 2013 at 5:22 PM, Jonas Bonér <jo...@jonasboner.com> wrote:
>>
>> On Mon, Jan 21, 2013 at 5:16 PM, √iktor Ҡlang <viktor...@gmail.com>
>> wrote:
>> > Also, the original version used to be work-donating instead of
>> > work-sharing
>> > (which it is now).
>>
>> That is true.

But it was still called WorkStealing*.

We should delete it because of its deception

Paul Butcher

unread,
Jan 21, 2013, 11:37:19 AM1/21/13
to akka...@googlegroups.com
On 21 Jan 2013, at 16:24, Paul Butcher <pa...@paulbutcher.com> wrote:

SmallestMailboxRouter is *similar* but not the same. Are you suggesting that SmallestMailboxRouter is "close enough"? Or is there something else that I should look at?

Such as the "consumer pulls work" pattern rather than the "producer pushes work" pattern, perhaps?

My concern with that is that it introduces latency - the consumer has to twiddle its thumbs until the producer generates something. There are ways around that, sure:

- I could run more consumers than cores - but I'm not sure I like that solution

- Or I could create an intermediary that maintains a cache of pre-generated work, hands it out to the consumers on demand and requests more from the producer when it falls below a watermark, but that's starting to sound very much like reinventing, err, BalancingExecutor.

Paul Butcher

unread,
Jan 21, 2013, 3:48:18 PM1/21/13
to akka...@googlegroups.com
To answer my own question - from spelunking the source, the thing that creates a pool of actors is RouteeProvider. But (as its name suggests) it's pretty tightly coupled to a router.

It strikes me that there's place for something that provides the same kind of functionality for use by things that aren't routers - something like the Master in Derek's blog post, for example:


(assuming that we choose to have the Master spawn children as needed, as suggested in the "Possible Extensions/Modifications" section).

--
paul.butcher->msgCount++

Snetterton, Castle Combe, Cadwell Park...
Who says I have a one track mind?

http://www.paulbutcher.com/
LinkedIn: http://www.linkedin.com/in/paulbutcher
MSN: pa...@paulbutcher.com
AIM: paulrabutcher
Skype: paulrabutcher

Roland Kuhn

unread,
Jan 28, 2013, 5:38:27 AM1/28/13
to akka...@googlegroups.com
Hi Paul,


And the pattern of routing is also going to be revisited in the future, in the sense that we want to make the logic reusable, be it as a special Router or just within a normal Actor, and the creation of routees is for sure included in such activities. But I cannot promise whether we’ll get around to it for 2.2, since we have a lot of other things still to solve.

Regards,

Roland

--
>>>>>>>>>> Read the docs: http://akka.io/docs/
>>>>>>>>>> Check the FAQ: http://akka.io/faq/
>>>>>>>>>> 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 post to this group, send email to akka...@googlegroups.com.
To unsubscribe from this group, send email to akka-user+...@googlegroups.com.
Visit this group at http://groups.google.com/group/akka-user?hl=en.
 
 



Dr. Roland Kuhn
Akka Tech Lead
Typesafe – The software stack for applications that scale.
twitter: @rolandkuhn

Paul Butcher

unread,
Jan 29, 2013, 12:52:13 PM1/29/13
to akka...@googlegroups.com
Thanks Roland.

If you want some additional grist for the mill, I recently updated my producer/consumer benchmark with more variants, and benchmarked many runs overnight so I could average the results to eliminate the variability I was seeing. The results are on my blog:


The headline conclusions are that the difference between the approaches is not huge. Each approach can be made to perform well. Nevertheless:

  • Producer pushes to a bounded queue, with BalancingDispatcher, is the clear winner when it comes to performance
  • For this version, BalancingDispatcher clearly outperforms both RoundRobinRouter and SmallestMailboxRouter, especially as the number of workers increases
  • The additional overhead of flow control causes a noticeable slowdown compared to using a bounded queue and blocking
  • The pull approach can be made to perform almost as well as the push model by batching queries, but not quite

--
paul.butcher->msgCount++

Snetterton, Castle Combe, Cadwell Park...
Who says I have a one track mind?

http://www.paulbutcher.com/
LinkedIn: http://www.linkedin.com/in/paulbutcher
MSN: pa...@paulbutcher.com
AIM: paulrabutcher
Skype: paulrabutcher

For more options, visit https://groups.google.com/groups/opt_out.
 
 

√iktor Ҡlang

unread,
Jan 29, 2013, 12:57:18 PM1/29/13
to Akka User List
Hey Paul,

what happens if you switch the order here:

  def receive = {
    case Work(pages) =>
      for (Page(title, text) <- pages)
        for (word <- Words(text))
          counts(word) += 1
      producer ! RequestWork(batchSize)
  }



to

  def receive = {
    case Work(pages) =>
producer ! RequestWork(batchSize)
      for (Page(title, text) <- pages)
        for (word <- Words(text))
          counts(word) += 1
      
  }

To unsubscribe from this group and stop receiving emails from it, send an email to akka-user+...@googlegroups.com.

To post to this group, send email to akka...@googlegroups.com.



--
Viktor Klang
Director of Engineering

Typesafe - The software stack for applications that scale
Twitter: @viktorklang

√iktor Ҡlang

unread,
Jan 29, 2013, 12:59:40 PM1/29/13
to Akka User List
Also, in the code, I find it a bit strange that the examples aren't using the exact same logic to perform the actual work. I'd split that out into a trait/parent and mix that in.

Paul Butcher

unread,
Jan 29, 2013, 1:06:58 PM1/29/13
to akka...@googlegroups.com
On 29 Jan 2013, at 17:57, √iktor Ҡlang <viktor...@gmail.com> wrote:

what happens if you switch the order here:

Ah - good question. I'll try that and get back to you.

Also, in the code, I find it a bit strange that the examples aren't using the exact same logic to perform the actual work. I'd split that out into a trait/parent and mix that in.

I was being lazy, I'll admit - I should have done that. But looking at the code again, I can't see the difference you're referring to?

√iktor Ҡlang

unread,
Jan 29, 2013, 1:15:33 PM1/29/13
to Akka User List
On Tue, Jan 29, 2013 at 7:06 PM, Paul Butcher <pa...@paulbutcher.com> wrote:
On 29 Jan 2013, at 17:57, √iktor Ҡlang <viktor...@gmail.com> wrote:

what happens if you switch the order here:

Ah - good question. I'll try that and get back to you.


 

Also, in the code, I find it a bit strange that the examples aren't using the exact same logic to perform the actual work. I'd split that out into a trait/parent and mix that in.

I was being lazy, I'll admit - I should have done that. But looking at the code again, I can't see the difference you're referring to?

Ah, a case of "the same != identical" :-)
 

--
paul.butcher->msgCount++

Snetterton, Castle Combe, Cadwell Park...
Who says I have a one track mind?

http://www.paulbutcher.com/
LinkedIn: http://www.linkedin.com/in/paulbutcher
MSN: pa...@paulbutcher.com
AIM: paulrabutcher
Skype: paulrabutcher

--
>>>>>>>>>> Read the docs: http://akka.io/docs/
>>>>>>>>>> Check the FAQ: http://akka.io/faq/
>>>>>>>>>> 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+...@googlegroups.com.
To post to this group, send email to akka...@googlegroups.com.
Visit this group at http://groups.google.com/group/akka-user?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Paul Butcher

unread,
Jan 29, 2013, 2:03:52 PM1/29/13
to akka...@googlegroups.com
On 29 Jan 2013, at 18:15, √iktor Ҡlang <viktor...@gmail.com> wrote:


Ah - thinking about it, that might have been a misunderstanding about what it means for a message to be invariant. Pages returns an iterator, and so, therefore, does "take". So I was converting to an Array so that the IO had been done before the message was sent. But thinking about it, that might be OK in this case?

√iktor Ҡlang

unread,
Jan 29, 2013, 3:03:10 PM1/29/13
to Akka User List
On Tue, Jan 29, 2013 at 8:03 PM, Paul Butcher <pa...@paulbutcher.com> wrote:
On 29 Jan 2013, at 18:15, √iktor Ҡlang <viktor...@gmail.com> wrote:


Ah - thinking about it, that might have been a misunderstanding about what it means for a message to be invariant. Pages returns an iterator, and so, therefore, does "take". So I was converting to an Array so that the IO had been done before the message was sent. But thinking about it, that might be OK in this case?

Ah, ok, but FYI Arrays are mutable :-)

Cheers,
 

--
paul.butcher->msgCount++

Snetterton, Castle Combe, Cadwell Park...
Who says I have a one track mind?

http://www.paulbutcher.com/
LinkedIn: http://www.linkedin.com/in/paulbutcher
MSN: pa...@paulbutcher.com
AIM: paulrabutcher
Skype: paulrabutcher

--
>>>>>>>>>> Read the docs: http://akka.io/docs/
>>>>>>>>>> Check the FAQ: http://akka.io/faq/
>>>>>>>>>> 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+...@googlegroups.com.
To post to this group, send email to akka...@googlegroups.com.
Visit this group at http://groups.google.com/group/akka-user?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Paul Butcher

unread,
Jan 29, 2013, 6:47:49 PM1/29/13
to akka...@googlegroups.com
On 29 Jan 2013, at 20:03, √iktor Ҡlang <viktor...@gmail.com> wrote:

Ah, ok, but FYI Arrays are mutable :-)

True - me being lazy again I'm afraid (sorry - I have a bad habit of taking shortcuts in benchmark code that I wouldn't in production code). Mutable, but not in fact mutated by the code as it stands. Whereas consuming an iterator would be mutation - although as I said in my earlier message, perhaps not "bad" mutation in this case?

I'll try running a version with the reordering you suggested, and an iterator in the message, to see how much of the speed difference between the pull and push versions results from these questions.

√iktor Ҡlang

unread,
Jan 29, 2013, 6:56:46 PM1/29/13
to Akka User List
On Wed, Jan 30, 2013 at 12:47 AM, Paul Butcher <pa...@paulbutcher.com> wrote:
On 29 Jan 2013, at 20:03, √iktor Ҡlang <viktor...@gmail.com> wrote:

Ah, ok, but FYI Arrays are mutable :-)

True - me being lazy again I'm afraid (sorry - I have a bad habit of taking shortcuts in benchmark code that I wouldn't in production code). Mutable, but not in fact mutated by the code as it stands. Whereas consuming an iterator would be mutation - although as I said in my earlier message, perhaps not "bad" mutation in this case?

Yes, having something that _will_ be mutated is definitely worse than something that _can_ be mutated :)
 

I'll try running a version with the reordering you suggested, and an iterator in the message, to see how much of the speed difference between the pull and push versions results from these questions.

The most fitting solution [than toArray] is to have it do pages.take(batchSize).toVector and make the type of the collection in the message scala.collection.immutable.Seq[Page].

Cheers,
 

--
paul.butcher->msgCount++

Snetterton, Castle Combe, Cadwell Park...
Who says I have a one track mind?

http://www.paulbutcher.com/
LinkedIn: http://www.linkedin.com/in/paulbutcher
MSN: pa...@paulbutcher.com
AIM: paulrabutcher
Skype: paulrabutcher

--
>>>>>>>>>> Read the docs: http://akka.io/docs/
>>>>>>>>>> Check the FAQ: http://akka.io/faq/
>>>>>>>>>> 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+...@googlegroups.com.
To post to this group, send email to akka...@googlegroups.com.
Visit this group at http://groups.google.com/group/akka-user?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Paul Butcher

unread,
Feb 2, 2013, 11:16:48 AM2/2/13
to akka...@googlegroups.com
On 29 Jan 2013, at 18:06, Paul Butcher <pa...@paulbutcher.com> wrote:

On 29 Jan 2013, at 17:57, √iktor Ҡlang <viktor...@gmail.com> wrote:

what happens if you switch the order here:

Ah - good question. I'll try that and get back to you.

So I ran these overnight. The updated results are available here:


The reordering you suggested allows the batched pull version to run so close to the push version as to be effectively identical. An analogous change to the unbounded queue + flow control version gets that to, as near as dammit, identical performance too.

So, in summary, each of the three different approaches, on my machine at least, now give virtually identical performance :-)

The one surprising thing (to my eyes at least) that's left is that I see significantly better performance for BalancingDispatcher compared to RoundRobinRouter and SmallestMailboxRouter in the bounded queue case, but I don't see anything like the same difference in performance for the unbounded queue case.

Evan Chan

unread,
Feb 2, 2013, 11:50:20 AM2/2/13
to akka...@googlegroups.com, Manish Khettry
Performance could be related to fairness.   What we observe, when we use bounded mailboxes + SmallestMailboxRouter  with Spray client, is that  the distribution of messages is extremely uneven and skews heavily towards the first routee.      If the actors are doing I/O, that could definitely impact performance.

(We know it's not an issue with the destination service, because when we use RandomRouter, the distribution is very even, and we are nowhere near the limit of the destination service)

We may try the BalancingDispatcher instead to see how it does.

-Evan

--
>>>>>>>>>> Read the docs: http://akka.io/docs/
>>>>>>>>>> Check the FAQ: http://akka.io/faq/
>>>>>>>>>> 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+...@googlegroups.com.
To post to this group, send email to akka...@googlegroups.com.
Visit this group at http://groups.google.com/group/akka-user?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 



--
--
Evan Chan
Senior Software Engineer | 
e...@ooyala.com | (650) 996-4600
www.ooyala.com | blog | @ooyala

√iktor Ҡlang

unread,
Feb 2, 2013, 2:25:17 PM2/2/13
to Akka User List, Manish Khettry

what "throughput" is configured for the balancing dispatcher? >1 = not fair at all.

Reply all
Reply to author
Forward
0 new messages