Thought I've followed what I could of the progress on asynchronous 
support, I have a few interdependent questions and suggestions.

1. On the one hand, I really like how simple asynchronicity is handled. 
I can defer my response to later (from another thread). But, Restlet 
provides no tools to help me decide if I should defer or not. What I 
would want to know is -- Am I under load right now, meaning high 
concurrency? Should I yield so that other requests can have a chance to 
get in?

2. A related question: If I do defer, I do not necessarily want to 
decide on my own when to finish the response. I might want to wait until 
there is a free thread that can take me. It would be great if there were 
1) a callback for this, or 2) a way for me to "signal" that I'm ready to 
respond, as soon as the server is free. Or, at the very least a way to 
poll the server load.

(To summarize these two issues: the Restlet server is very opaque right 
now. For truly scalable applications (cloud, cloud, cloud) we need 
realtime information from it so that the application can react dynamically.)

3. I know that the "default" connector supports commit/abort, but what 
about Grizzly, Jetty and Netty? If they don't support it yet, is support 
being planned for 2.0? This will strongly affect my deployment strategies.

4. Assuming only the "default" connector is asynchronous, could you 
provide more details about it? Until now, frankly, I've ignored it as 
something that just works and isn't fit for production. It seems like 
this connector is very capable by now, but I know nothing about how it's 
implemented. NIO? Thread pools? SSL? I think it would be very good if 
there were a wiki page with an in-depth comparison of the various 
available connectors, what features they provide and implementation 
details -- both of the servers themselves, and of the features the 
Restlet adapters leverages (or not). As it stands, it's hard for a 
deployer to make an informed decision on which connector to use.

(For the record -- I think benchmarks are quite useless for this 
comparison. Performance != scalability, and in any case benchmarks are 
highly contextual. It's very easy to switch connectors in Restlet and 
for people to do their own benchmarks.)

5. Might I suggest giving the "default" connector a name? It seems to be 
a nice little engine of its own. If we're going to start comparing it to 
the others as a viable alternative, it might be easier to name it. My 
only name suggestion is Thier Engine, short for Thierry, and reminds me 
of "tier." :)

-Tal

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

Reply via email to