Erlang killer app?,
Tue Jul 23 07:39:37 CEST 2002
Joe Armstrong <>:
> In other words if your web site has nasty peaks when suddenly everybody
> wants to access it Apache almost falls over, yews ticks along nicely.
> Even at 1000% overload yaws was servicing all requests (albeit slowly)
> but Apache was rejecting 40% of all traffic.
> Also bear in mind Klackes figures - yaws was generating 2,000
> dynamic pages/sec - a high performance PHP will manage a few hundred.
I think Yaws performance are impressive, particularly when you realize it has
nearly the same figure when serving dynamic pages and static pages.
I mentionned Inets earlier. I made preliminary benchmarks during the week-end
(Inets-3.0JB). Inets seems 4 to 5 times slower than Yaws under light charge.
An intersting question here regarding Apache: Which version did you use ?
Apache V2 is marketed as more scalable than Apache 1.3 because some
multithreaded stuff has been added. It seems that it does not always use the
system process 'fork' to handle several requests.
> So we have:
> 1) shorter code
> 2) better performance under heavy overload
> 3) very fast dynamic page generation
> That's why you will like it :-)
I think we also need:
- A page templating system. I made preliminary tests of an Erlang Page
templating system based on ZPT (Zope) and I think it fits well to Erlang. It
seems to be a good choice.
- A way to described the logic of the web application itself. An MVC approach
might be a good choicefor this task. I still need to think about the way to do
it. In Erlang terms, we need a web application behaviour (like OTP behaviours).
- A way to be able to have several independant Web Application running
independantly. J2EE approach is good on this side. You can add a directory with
a config file describing the behaviour of your application and the service it
needs. This way we could for exemple run a new Erlang node to provide a mnesia
database to application that need serialisation mechanism.
We would have here a good application server that can become a killer app here.
Then, the last requirement would be a way to take advantage of Erlang feature: A
must have is to be able to update a given web application without restarting the
server (page templates and Erlang modules).
Having the same functionnality for the http/Application server itself would be nice.
Some one mentionned Paul Graham text. A described the importance of dynamic
server environments for ASP application hosting and development.
I think for monthes that the market is looking for a good plat-form to develop
robust, reliable, efficient application servers that can be the basis of
critical applications running 24/7.
Then Sun proposed the J2EE application server technology. People are
disappointed because this technology does not fullfill its promise.
I think we can do it with an Erlang approach. And it will be a great relief if
we can find a simpler alternative to J2EE technologie, because this is really a
nightmare to developp with J2EE application server (Too complicated, too heavy,
several minutes to deploy new apps: that's horrible to use it in developpement
More information about the erlang-questions