One of the recurrent questions that people ask when evaluating the Restlet framework are:
- Does it scale?
- Is it properly multi-threaded?
- How do the standalone HTTP server connectors compare to Servlet containers?
As the code was designed since day one with this concern for multi-threading, high-availability and scalability, we were confident about the performance. We run our http://www.restlet.org Web site on the Noelios Restlet Engine with a standalone Simple connector and never had any scalability or stability issue, even when the site experienced peak loads, during new releases or during denial of service attempts.
Thierry Boileau, another core developer, took the time to do a formal benchmark using ab, a common Apache stressing tool. Those tests confirm the scalability and responsiveness of all connectors and show a similar performance between the standalone connectors and the Servlet adapter.
This is encouraging and it will be quite interesting to compare these results with the ones of the future full NIO connectors that we plan for version 1.1. Those connectors will attempt to fully leverage the NIO part of the Restlet API, by using proven NIO frameworks such as Glassfish’s Grizzly and Apache’s MINA. This should give a significant performance advantage to Restlets over classic Servlets which are limited by blocking BIO streams to a large extend.