mina-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jeff MAURY <jeffma...@jeffmaury.com>
Subject Re: Interesting post about AIO
Date Sat, 02 Mar 2013 12:23:26 GMT
On Sat, Mar 2, 2013 at 9:43 AM, Emmanuel Lécharny <elecharny@gmail.com>wrote:

> Le 3/2/13 9:10 AM, Julien Vermillard a écrit :
> > Hi,
> > Agreeing with jeff, you can't complain of the lack of an accessor, when
> you
> > just voided the attachment ;)
> Again, this is not the interesting part n this article...
> >
> > I really wonder what JDK guys have in mind with AIO, it's far of being a
> > slick API, it doesn't support UDP (you need to mix AIO and NIO if you
> want
> > to support TCP and UDP) and I can't see how it could be a performance
> gain ?
> Java AIO implementation is supposed to benefit from OS taht has a
> specific way to deal with AIO (through completion queues, like what is
> done on Windows, some Linux versions and probably other OS).
This is not yet done in the current implementation of the JDK. Maybe JDK8 ?

> This page is providing some information :
> http://www.kegel.com/c10k.html#aio
> Another very complete description :
> http://stackoverflow.com/questions/4093185/whats-the-difference-between-epoll-poll-threadpool
> Regarding AIO/ePoll on linux, an interesting paper :
> https://docs.google.com/viewer?a=v&q=cache:CwPj9geCCTkJ:www.linuxsymposium.org/archives/OLS/Reprints-2002/lahaise-reprint.pdf+&hl=en&gl=fr&pid=bl&srcid=ADGEESj6bzG_kAkqH8KQGWL5Evt4yDbIEhrsaaNMD4eD7p-bhJHoAjjQeT3Ys8fXWY_dn88WY98kW0Hg2-sBIPrvFpBpniMrKK6wY07lY80x1ZT9tEX_TERnxwosL6WXjokFs_huSdX6&sig=AHIEtbRAgWiO-HR0BOjkxh3JcYetJpTXnA
> >
> > After few year of usage I start to think the whole java.nio and
> > java.concurency are weirdly designed API.
> That's probably why API like MINA are necessary :)
> >
> > Anyway we can't expect more performance for AIO since it's probably just
> an
> > API built on top of NIO.
> Not so sure.
It's not done on top of NIO but the current implementation (JDK7) does not
use OS based NIO but does more or less what MINA NIO does

> > If we want more performance, we need to zero copy
> > interface with the linux epoll() sys call. But I'm not sure we want to do
> > that :)
> AIO does no copy the data, compared to NIO. It's probably one of the
> aspect that leads to better performances.
I don't see the difference between NIO and AIO on this topic as both API
use the ByteBuffer for exchanging data.

> I'm still wondering if we can see any gain, but the more I read about
> AIO, the more I'm convinced we need to spend some time on a prototype to
> get valid numbers.
I don't expect good numbers given the current implementation but at least
we've got something when the JDK implementation will be better.

> In any case, would we implement a layer on top of AIO, the upper API
> should not be different, and that's were we have to be careful !
Yes, that what I have in my POC


> --
> Regards,
> Cordialement,
> Emmanuel Lécharny
> www.iktek.com


"Legacy code" often differs from its suggested alternative by actually
working and scaling.
 - Bjarne Stroustrup


  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message