Hi;

I just started working on a project where I will be required to deal with as
much as 40 - 50 requests per second. These requests are sync requests which
might take up to a second to process and I will have to return response when
processing is complete. I am using MINA 2.0.0.RC1. I used Mina for some time
with lower traffic, With all due respect I don't have a complete picture of
the thread model of MINA and there's really limited resources in project web
page and I am not quite sure how far I can extend it. I know that I can add
executorfilter to provide n-threaded approach. What I am wondering is "is
NioSocketAcceptor() totally independent of executor filter?" so If I
initialize it like:

final IoAcceptor acceptor = new NioSocketAcceptor();

Will there still be only one acceptor thread regardless of how many threads
are available? As far as I understand, acceptor is single entry point where
a request comes in fairly faster(compared to processing it), it branches the
requests to threads and each thread takes care of each request by passing it
to the handler.

So things should be good, as long as application has free threads, but what
if application receives way too many requests than it can handle and all
threads are busy at the time, what happens to that request? does acceptor
store it in a queue somewhere, or does it simply drop request?

As long as my processing is fast, single entry point for requests shouldn't
be a problem for the application,  but I still wonder if there should be
some other design considerations that I should be aware of to maintain
scalability.

Erinc

Reply via email to