james-server-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew C. Oliver" <acoli...@buni.org>
Subject Re: Trunk Imap vs Sandboxed Imap (Was: svn commit: r536979 [1/4])
Date Sun, 13 May 2007 15:16:57 GMT

> IMHO SEDA is required for
> performance but is not required for correctness. so it seems a little
> pointless to abandon the synchronous version.

In my humble opinion asynchronous IO/SEDA are not required for
performance and there are many many more problems to be solved BEFORE
you hit the scalability issues of thread constraints.  I would put it to
you that MIME parsing, storage, search, indexing, IMAP command parsing
so outweigh the costs of front-end connection handling as to make it a
rather needless complexity for your 1.0 implementation.  I suggest
checking out the HEAD of Meldware's IMAP or even the last build
(http://buni.org/mediawiki/index.php/Downloads) (LGPL and proud) and
seeing this in action.  Not only is it not slow but the only thing that
has any real wait is initially opening a large mailbox and issuing a
fetch (which would not be any faster with asynch IO on the front end).
I'd also suggest that the benefits of asynchronous IO may be
significantly lower for a stateful protocol than for stateless
protocols.  

I'm not saying that asynchronous IO is not worth doing, but that IMAP is
such a complex beast that you're better off focusing on making it work
as fast as possible as simply as possible for your IMAP 1.0.  I say this
in the best of spirit as we benefited from looking at an old "proposal"
test kit from JAMES early on among other things that were helpful
elsewhere.  A healthier JAMES is good for us.

-Andy


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


Mime
View raw message