synapse-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dave Irving <>
Subject Re: A basic non-blocking http/s implementation for Axis2/Synapse
Date Mon, 30 Oct 2006 10:21:07 GMT

Oleg Kalnichevski wrote:
> ... If I understand it right, the content generated by
> individual async workers always end up in an intermediate expandable
> buffer, before it gets written to the underlying socket channel. If so,
> under heavy load there is always a chance that the buffer can no longer
> grow due to OFM condition. In my _humble_ and _personal_ option this
> totally defeats all benefits of an async transport versus threaded one. 

Well yes, in MINA buffers are provided back in to the framework which are
ultimately queued for (NIO) writing by dedicated selector thread(s). Right
now, asyncweb has its own write buffer - but with ASYNCWEB-21 we'll be
writing straight in to these MINA managed buffers. MINA already does buffer
pooling (as does asyncweb for everything except responses pre ASYNCWEB-21) -
so for the most part it is unlikely that there will be a lot of allocation
going on. 
With MINA going TLP, it is going to be getting used and tested in a whole
range of high-end network applications. I would certainly expect it to be
very robust (and I think it is already). The challange will be to ensure
that AsyncWeb makes best use of what MINA offers it to ensure that this
robustness is carried across in to asyncWeb.

But, of course, with any high end server there is going to need to be some
capacity planning. On the incoming side, use of connection throttling, and
per connection + per connector memory usage limits (from MINA) will help
with this. On the outgoing side, we'll again be using pooled buffers.
However, if some application thread does blow up - AsyncWeb will detect this
anyway (timeout) and respond to the ultimate client with an HTTP internal
server error.

View this message in context:
Sent from the Synapse - Dev mailing list archive at

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message