Bryant, Jason - AES wrote:
How does MINA handle write throttling?
It currently does not.
 If a server is being developed to handle thousands of concurrent connections 
then some of the clients will be slow and have their data output buffers 
getting backed up.  Is this still an issue for MINA, or do you handle partial 
writes and reads along with queueing future requests until space clears on a 
connections buffer?
We are working on that. It's expected to be there for 2.0. Not an easy thing though, as this imply to deal with thread starvation too, or with some heuristic to deal with too slow clients.
Currently I am using an NIO server which has a WritableByteChannel between the 
socket and my classes handling output.  I tried to pump data in different sizes 
while having anywhere from 100-500 clients.  Even with DirectBuffering off when 
creating my channels I am still getting Direct Buffer out of memory errors 
because the WritableByteChannel seems to create a temporary direct buffer to 
handle the overflow, which eventually becomes too large if I have too many 
clients or too much data hitting the server.

But if this is a problem MINA has fixed it would make sense to switch to that.  
Are there any performance statistics showing if MINA outperforms a regular NIO 
implementation, or at least comes close?
As MINA is just a framework written on top of NIO, it should not be faster. But it is supposed to handle the load more easily than an (average) hand written NIO server...

hope it helps.

--
--
cordialement, regards,
Emmanuel Lécharny
www.iktek.com
directory.apache.org


Reply via email to