Fillp Hanik recently posted a blog entry about a load test comparison he did using Glassfish, Jetty, and Tomcat 6 using the new NIO (non-blocking io) connectors in which Tomcat 6 was able to handle 16,000 connections. As always load tests should always be taken with a grain of salt, but it certainly did produce some interesting results (especially when compared to other servlet containers).
I’ve been working on a sizable project at work that uses NIO under the hood, but luckily I’m using a 3rd party library which provides the network connectivity for me. It seems that NIO is very hard to implement correctly, but if you can, the performance advantages are definitely worth the effort. I’m only a few days away from starting to do some load testing on my work, so I’ll be interested in seeing the performance improvement over the section of code I’m replacing which uses standard IO (not to mention the various synchronization and thread consumption problems I’ll be fixing).
Being able to quickly handle a large number of concurrent connections is definitely a requirement for today’s AJAX applications, and it’s good to see an NIO based connector from someone other than Jetty.