On 26/11/2008, at 9:21 AM, Emmanuel Lecharny wrote:

Matthew Phillips wrote:
The Avis event notification router and client library uses MINA.

 http://avis.sourceforge.net/

Interesting... I see that you are using MINA since it's infancy (1.0.2) and that you switched to 2.0.0-M3 in your trunk.

Do you mind giving us some feedback about the versions you used (which one was the easiest, which one is the fastest, what are the nasty problem you hit)?

MINA was easy to pick up, the protocol decoder thing and filters fitted my mental model of how it should work -- it definitely saved a great deal of time in developing Avis. I wish I had had the equivalent when developing the C API :/

I only really switched to 2.0 so early (started with M1 I think) so I could pull in asyncweb to add a web-based admin interface: it's been quite a lot of work tracking API changes and running into MINA bugs. 2.0-M3 seems good at the moment though, and I was glad to see such quick consensus on getting 2.0 stabilised soon.

Some of the things that have been problems:

* IO flushing: I've never been quite sure how to ensure that messages still in the pipe are sent after a session close (). Shutting down a server cleanly seems tricky, and I'm still not entirely sure that I'm doing it right actually :/

* DIRMINA-435: An interesting heisenbug that only happened on Windows, and only over a high-latency overseas link. Nasty, but we found the bug in the end. https://issues.apache.org/jira/browse/DIRMINA-435.

* Direct vs heap buffers. Using direct buffers has caused several out of memory errors running on Linux over long periods (weeks), switching to heap buffers has fixed.

* Running multiple server listen endpoints and sharing thread pools etc is a little tricky, especially when the server also creates outgoing links via MINA.

I haven't run any performance benchmarks: apart from DIRMINA-609 and the direct buffer thing, I've never had a performance issue with MINA.

Hope that random selection of anecdotes is useful!

Cheers,

Matthew.

Reply via email to