Facebook Releases Open Source Web Server
Dan Jones writes "Ah the irony. The week Facebook is being asked to cough up source code to satisfy an alleged patent infringement, the company releases an open source Web server. The Web server framework that Facebook will offer as open source is called Tornado, was written in the Python language and is designed for quickly processing thousands of simultaneous connections. Tornado is a core piece of infrastructure that powers FriendFeed's real-time functionality, which Facebook maintains. While Tornado is similar to existing Web-frameworks in Python, it focuses on speed and handling large amounts of simultaneous traffic."
"Thats not IRONY chumps & chumpettes, its just coincidental".
It's just coincidental!
That's pretty bold to claim your framework has better performance then another one that's not publicly available.
I don't know, Java, C++ and python all run at fine speeds if you write proper code for the language. C++ is probably the fastest in most cases, but Java is going to be a real close second written properly and on the right VM. While I don't like python myself, theres a reason it gets used in games, it can perform well enough to be used extensively if you can deal with compile time, which wouldn't really matter for long running process like a web server.
Perl isn't HORRIBLE, again, startup time is its biggest problem. PHP has issues, but when zend, precompiling and caching again, it works better than most expect.
I know nothing at all of Erlang so I won't speak to it.
MySQL is known for being fast as hell under the right workload, just gotta use it the right way.
Mix in some memcached and you can server a lot of hits.
Considering the number of extremely high traffic websites that use a mix of software about like this one, I think you'd have to be pretty stupid to put the blame on the software thats used.
Do you run a server farm that gets more traffic than Wikipedia, Yahoo or MySpace? I'll talk some shit about languages and say that everything should be written in C at the highest, by proper programmers so we don't end up with OSes that need gigs of ram to boot ... but ...
While possible, even I'm not arrogant enough to call them stupid.
I don't find anything about Wikipedia's setup 'impressive', but its certainly done properly. Their mix of php, python and mysql is all used exactly as is should be and serves a massive amount of people on a relatively low amount of processing power.
But again ... stupid? No, they are hardly stupid.
Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
As we say in #python, "Programming is hard!"
Learning Twisted is so much easier than rolling your own networking mini-library. Sure, a lot of people are kicking and screaming in the beginning, but once they actually sit down and start coding, they usually say something like, "Oh, hey, this is nice."
There's a reason it's popular.
~ C.
They explicitly states that they looked at Twisted and chose to write something more user-friendly. Having looked at Twisted (3-4 years ago though) and at Tornado's samples and benchmarks I think they succeeded. Twisted seems to be going the way of Zope: an interesting platform that did everything its own way and shut itself out from the rest of the Python universe, eventually losing relevancy.
I think a Tornado/Django mashup (Tornado infrastructure, Django front-end/application bootstrapping) would be realllly interesting....
Bret Taylor says:
When we started, we did use Twisted. In practice, I found Twisted tedious. The deferred abstraction works, but I didn't love it in practice. Likewise, the HTTP/web support in Twisted is very chaotic (see http://twistedmatrix.com/trac/wiki/WebDevelopment ... - even they acknowledge this). In general, it seems like Twisted is full of demo-quality stuff, but most of the protocols have tons of bugs.
Given all those factors, it didn't seem to provide a lot of value. Our core I/O loop is actually pretty small and simple, and I think resulted in fewer bugs than would have come up if we had used Twisted.
I never made it past the kicking and screaming part :-).
I remember when legal used to mean lawful, now it means some kind of loophole. - Leo Kessler
True, you can. But Facebook is at the forefront, the bleeding edge. They're doing stuff that nobody else is doing yet. So it'd be more like complaining about a surgeon killing a patient during a procedure that no one has ever tried before, like a heart transplant in 1973. And they do successfully serve most of their customers. I'm no facebook fanboy, I'm just saying they are pushing the limits, and also doing what they can to advance the technology.