[Twisted-Python] I found an interisting comment about Twisted vs. Erlang

Alec Matusis matusis at yahoo.com
Wed Sep 30 16:00:05 EDT 2009

>It became very painful once
>we started getting CPU bound on 32 core CPU machines. We had to run
multiple instances of our Twisted server implementation
>to saturate the machine. I have since "ported" the same application to
Erlang/OTP. It is about 1/5 the amount of code.
>And it scales 1:1 horizontally (adding more CPUs local or remote ) and
vertically (adding FASTER cpus ) with no code changes.

>The broad statement that Twisted doesn't possess the capabilities of
Erlang/OTP is pretty much accurate. Each solves a different problem.
>Granted Erlang/OTP is definately a super-set of what Twisted does.

Scaling horizontally, i.e. parallelization of twisted servers over multiple
cores is a difficult problem. We run this on 8 and 16 core CPU machines, one
process per core, and I use UDP multicasts on internal LAN for messaging
between the servers (both inside the same physical machine, or to remote
nodes). This is of course less than ideal. It would be very nice if Twisted
had some inherent capabilities for scaling horizontally.

> vertically (adding FASTER cpus ) with no code changes.

When you ported, were you able to serve to less or more clients on the same
speed CPU core?

The biggest advantage of Twisted is a shorter development time, and the
availability of Python libraries. But I wonder if running something of the
scale of Facebook chat would be feasible at all, or if there are people on
this list that have run many parallelized twisted servers that saturated
many multi-core machines? In other words, are there practical examples of
large-scale Twisted deployment? 

More information about the Twisted-Python mailing list