nova team mailing list archive
Mailing list archive
Re: Why not python threads?
If we want to go with the simplest possible approach, we could make the
compute workers synchronous and just run multiple copies on each host. We
could make one of them 'read only' so it only answers simple/fast requests,
and a few (4?) others for other long/io intensive tasks. The ultimate would
be to have each message actually have its own worker a la erlang, but that
might be a bit extreme.
I've been doing a lot of the changes later that require switching everything
to async. It is a bit annoying to wrap your head around it, but it really
isn't all that bad. That said, I'm all for making things as simple as
On Tue, Aug 3, 2010 at 6:30 PM, Justin Santa Barbara <justin@xxxxxxxxxxxx>wrote:
> Without meaning to make the twisted/eventlet flamewar any worse, can I just
> ask why we're not just using 'good old threads'? I've asked Eric Day for
> his input based on his great benchmarks (http://oddments.org/?p=494). My
> background is from the Java world, where threads work wonderfully - possibly
> even better than async:
> I feel like Nova is greatly complicated by the async code, and I'm starting
> to see some of the pain of Twisted: it seems that _everything_ needs to be
> async in the long run, because if something calls a function that is (or
> could be) async, it must itself be async. So yields and
> @defer.inlineCallbacks start cropping up everywhere.
> One of the project goals seems to be simplicity of the code, for fewer bugs
> and to reduce barriers to entry, and it seems that if we could use 'plain
> old Python' that we would better achieve this goal than if we have to use an
> async framework.
> I know that Python has its issues here with the GIL, but I'm just wondering
> whether, in the case of nova, threads might be good enough, and produce much
> easier to understand code? I'm guessing that maybe the project started with
> threads - what happened?
> Mailing list: https://launchpad.net/~nova
> Post to : nova@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~nova
> More help : https://help.launchpad.net/ListHelp