← Back to team overview

nova team mailing list archive

Re: Twisted or Eventlet?


While I'm sure there are arguments for switching, I'd argue for not
rewriting things unless there's a compelling reason.  Every rewrite
introduces bugs, and we saw this when the Nova ObjectStore recently moved
from Tornado to Twisted.

That said, if we're going to break things, we should break them asap, so
that we can get things stabilized sooner.

In the case of the Nova ObjectStore, because it's a temporary solution until
we switch to Swift and/or a new service designed for disk images, I'd
suggest that we not rewrite it.

On Thu, Jul 29, 2010 at 12:24 PM, Eric Day <eday@xxxxxxxxxxxx> wrote:

> Hi everyone,
> During the design summit in Austin, there was some discussion about
> switching Nova services from Tornado to Twisted or Eventlet. From
> what I've seen that is still an open question, is that correct?
> I ran some performance tests on the two and they are
> about the same, but Eventlet did do slightly better (see
> http://oddments.org/?p=494). So I think it comes down to available
> features we need from a framework and ease of use. Swift is using
> Eventlet, which may give a vote in that direction since that gives
> us some Eventlet expertise already in the OpenStack ecosystem. For
> web-based services it shouldn't matter too much since the WSGI
> interface should be fairly interchangeable.
> I'm leaning towards Eventlet since it provides a more straight forward
> approach to programming, letting the coroutines and method wrappers
> underneath take care of the non-blocking hooks. This will make it
> easier for new developers jumping in to wrap their head around the
> code, where Twisted has a bit more of a learning curve for those not
> familiar with non-blocking/deferred techniques.
> Thoughts?
> -Eric
> _______________________________________________
> Mailing list: https://launchpad.net/~nova
> Post to     : nova@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~nova
> More help   : https://help.launchpad.net/ListHelp