A project I’ve been watching for a little while now, node.js, aims to solve the problem of scalability in web applications. It does so in an extremely efficient manner by creating an abstracted event handler that processes requests without blocking or spawning new threads. Traditional webservers, like Apache, end up starting a new thread for each connection. When you start having thousands of users peg your site, this becomes extremely costly.
It’s sort of shocking how long web servers have been behaving in this way. Except for the fact that hardware is cheap and thus, many end up throwing more hardware at the problem. That is certainly an option in many cases, but it isn’t really ideal, or the best allocation of resources. Additionally, the web has also become far less static, and Web 2.0 apps compound the problem.
Then today I saw an article over at ArsTechnica about this new server architecture from SeaMicro, the SM10000. They’ve crammed 512 Atom processors into a system where networking and storage resources are pooled in a way that is hidden from each individual processor. It sounds like a perfect mate for node.js. It would be very cool to see how the two together would perform on web applications. I can envision using this to create a very efficient, scalable cloud-server, while being environmentally friendly to boot!