On 9/4/11 7:52 PM, Antonio Rodriges wrote:
Thank you, Emmanuel,
Any costly action is performed completely in one thread no matter of
the thread number.
What's your point ?
It is still not clear for me in what cases it would be beneficial to
set up both the number of NioAcceptors and number of Executor threads.
IMO, you should not need to set anything for the NioAcceptors. It won't
matter too much. If you need to scale more and if you ghave some
bottleneck, then first you have to identify them, and second you have to
find the best solution to get them fixed.
One very good use case for an executor is when you have a session where
a request can take a very long time to be processed, and your protocol
allow the user to send an abort message on the same session, then you
need an executor, otherwise your long request will be executed no matter
what (remember that the requests are always processed by the same
IoProcessor, when they are for the same session, thus the second request
will be enqueued).
There are many other cases where using an executor could help. For
instance, as you will have a limited number of IoProcessor (ie, Thread
to execute your actions), as soon as one of them is busy processing one
long request, all other sessions associated with this thread will also
be enqueued, waiting for the thread to be done. Using an executor can
allow those pending requests to be processed.
--
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com