I know of the limitations of tornado's architecture on Windows: before 
today I didn't even know it was possible to run tornado on Win :D

To sum up, the problem is: web2py needs a pure python webserver that 
supports SSL. It needs to be runnable on Win, Mac and Linux (possibly on 
Solaris too). Raw performance tested with ab doesn't really care because of 
the way it's meant to be an app: if you need thousands of requests in 
parallel you don't need to run web2py in "development" mode, possibly 
you'll end up on unix and behind a webserver (apache, nginx) or gunicorn, 
circus, uwsgi, etc. just after facing other problems first (db access, to 
say the least)
Anyway, of course, faster is better. 
There are some folks (me, for example) that are limited and can't use those 
"tools" on production on linux or behind apache (corporate rules madness, 
Windows environment, etc). 
For intranet web-apps, rocket is totally fine: concurrent users are never 
over 30 people in my case and I can afford having web2py in "deployment" 
while running on rocket (or motor :P).
The big bottleneck is always the database for 90% of the apps.  
Rocket and Cherrypy are battle-tested on Win, tornado isn't (can't find an 
"official" endorsement of deployment on Windows in production). For users 
in the need to run web2py on different webservers under linux, there are 
plenty of possibilities with scripts (apache, nginx, uwsgi, etc) or 
anyserver.py (you can mount web2py in quite whatever wsgi runner you'd like 
to).

For me, bases are covered with either rocket or cherrypy. As long as we can 
patch and support rocket while Tim regains some time to spend on it, I'm 
fine (after all, I think Massimo spent on it little time). 
Tornado (in the motor "incarnation") seems to need some more refinement to 
reach the "battle tested" status (don't know how much time you spent on it, 
but I'm glad you did anyway). Performance-wise, this tests acknowledged 
that is a valid alternative (given the due refinements).
As long as there is someone willing to support motor and periodically 
check-in new code and patches from tornado source, and test it on all 
platforms, I'll be fine with replacing rocket with motor: the main point 
here is that it can run slower (up until it can compare with rocket) but 
can't crash on any condition (select() or epoll availability doesn't really 
matter on this "perspective").
If the time needed to include and support motor (given a gain in 
performances > 25% for normal apps) is more than the one virtually spent on 
rocket patches, I think that all the peoples in the need can turn to the 
way web2py yet provides, using anyserver.py (pip install tornado, python 
anyserver.py -s tornado is easy even for newbies). 

-- 



Reply via email to