Good morning,

On Friday 2009.03.20, at 09:27 , David Fogel wrote:
[...]
> Thanks for posting those benchmarks.  Another comparison that I'd be
> very interested to see added to your current benchmarks is between
> Restlet and non-Restlet solutions.  For example, if the graphs you
> published were to also show a plain servlet solution on the different
> engines, as well as maybe a comparison to apache and lighttpd, etc.
>
> Obviously a lot depends on what kind of resources are being exposed-
> static file performance seems unlikely to tell us very much about
> real-world web application and web service performance.

Um, er, without a clear idea of what that "real-world" application is,  
these micro-benchmarks won't tell you much.

> One of our questions in choosing to build our technology stack on top
> of Restlet is that we're not sure what the additional overhead is,
> given that Restlet adds some layers on top of, for instance, Jetty or
> Simple.  To put it another way: what is the price in performance that
> we need to pay for a better more RESTful API?

For static resources, there's really three main choices:
* the traffic is small enough that it doesn't matter at all -- do  
whatever is easiest for you.
* the traffic is enough that one should split out the static from the  
dynamic -- lots of ways to deal with this.
* the traffic is huge and one needs lots of help -- CDNs, multiple  
data-centers, clouds, etc.

Perhaps you can give us a more specific idea of what your target zone  
is or use case or something to narrow it down?

For Krugle, we used lighttpd+mod_cache for caching, apache+mod_perl  
for the (stateless) front-side, and restlet+jetty for the "app  
server" / middleware gatekeeper (fronting all of the back end search  
features).

IMHO, one of the key things to look at in terms of comparing wildly  
different technological approaches is how well they deal with various  
kinds of resource exhaustion.  I.e., what happens when you can't run  
more Ruby worker processes; what happens when you start hitting full- 
GCs in Java solutions, etc.  That will have a bigger impact on  
planning (if one cares, anyways :-) than milliseconds here or there on  
a micro-benchmark.

As Rob mentioned, in my experience the basic performance of Restlet  
approach vs. Servlets is basically the same for servlet-ish code but  
one full step better if doing "native" restlet (on non-trivial  
workloads).

Hope this helps,
John

------------------------------------------------------
http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=1366279

Reply via email to