> Ah, so you are multiplexing the sessions.
>
> Just a question : why is it a problem to have many opened files ? Plus why

Since a client program may have dozens of threads each sending
queries. There can be thousands of Client Progams. This is simply
wasteful to have a session per thread.

By a "thread" in my previous post I meant not NioAcceptor or smth
else, but a thread on Client Program (not Mina thread)

> would you use one thread per session ? (if you do that, you'd better use
> BIO, it's 30% faster).

No, a session may be served by several Mina threads.
What do you mean by BIO?
>
>
>
>>
>> Now I see we must have separate sessions for each thread (at least for
>> some application parts). And even more: at least two sessions - one
>> for read the other is for write?
>
> I think there is some misunderstanding here. When I mention Session, I mean
> the IoSession instance associated with the connection. If your many clients
> are using one single IoSession, then it's a different story.
>
As I mentioned above, several threads of a Client use single IoSession
in order not to create a connection personnally for each.

> At this point, I need a better description of what you are trying to do...

Another reason to have a single session for several threads (apart
from reducing the number of opened files) is to have more tight (and
simplified) control over the processing of requests. When we have a
single session we are sure we have one physical Client, thus the
planner might queue (and not process them in parallel giving an
opportunity to other Clients ) all requests coming from a single
Client (issued by its several threads that do not know about each
other). This also reduces the number of open/close connection events
since the number of Client threads is not fixed and quite dynamic.

Reply via email to