mina-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Emmanuel Lécharny <elecha...@gmail.com>
Subject Re: Multithreaded UDP server vs. OrderedThreadPoolExecutor
Date Wed, 25 Sep 2013 15:27:35 GMT
Le 9/25/13 3:14 AM, Christian Hammers a écrit :
> Hello
> On Tue, 24 Sep 2013 11:51:04 -0700
> Emmanuel Lécharny <elecharny@gmail.com> wrote:
>> Just get rid of the executor, and increase the number of IoProcessor,
>> you will be able to spread the load on many threads, and each new UDP
>> message will be completely processed before the next UDP message can
>> start to be processed.
> How can I increase the number of IoProcessor? Unlike the NioSocketAcceptor, the
> NioDatagramAcceptor constructor has no processorCount argumment.

Ah, sorry, my bad. I had switched to Socket in my mind...

Let me clarify (I've been far from MINA for 3 months, and too much in
3.0, so I'm a bit rusty :/)

- NioProcessor do the select(). This is mainly used by the
NioSocketAcceptor, because we may have more than one selector.. For UDP,
it does not make sense, we are using one singe selector.
- Thus, if you want to spread the load on your server, then you have to
do what you have done : add an executor filter in your chain.

So far, regarding your initial question, I think you are doing the right
thing. Now, considering your pb, yu should probably check that the
previous message has been written (thus your handler has received the
messageSent event) before trying to write another message.

Emmanuel Lécharny

View raw message