[openstack-dev] Asynchrounous programming: replace eventlet with asyncio

Joshua Harlow harlowja at yahoo-inc.com
Thu Feb 6 18:22:24 UTC 2014


Has there been any investigation into heat.

Heat has already used parts of the coroutine approach (for better or
worse).

An example: 
https://github.com/openstack/heat/blob/master/heat/engine/scheduler.py#L230

"""
    Decorator for a task that needs to drive a subtask.

    This is essentially a replacement for the Python 3-only "yield from"
    keyword (PEP 380), using the "yield" keyword that is supported in
    Python 2. For example::
"""....


I bet trollius would somewhat easily replace a big piece of that code.

-Josh

-----Original Message-----
From: victor stinner <victor.stinner at enovance.com>
Reply-To: "OpenStack Development Mailing List (not for usage questions)"
<openstack-dev at lists.openstack.org>
Date: Thursday, February 6, 2014 at 1:55 AM
To: "OpenStack Development Mailing List (not for usage questions)"
<openstack-dev at lists.openstack.org>
Subject: Re: [openstack-dev] Asynchrounous programming: replace eventlet
with asyncio

>Sean Dague wrote:
>> First, very cool!
>
>Thanks.
>
>> This is very promising work. It might be really interesting to figure
>> out if there was a smaller project inside of OpenStack that could be
>> test ported over to this (even as a stackforge project), and something
>> we could run in the gate.
>
>Oslo Messaging is a small project, but it's more a library. For a full
>daemon, my colleague Mehdi Abaakouk has a proof-on-concept for Ceilometer
>replacing eventlet with asyncio. Mehdi told me that he doesn't like to
>debug eventlet race conditions :-)
>
>> Our experience is the OpenStack CI system catches bugs in libraries and
>> underlying components that no one else catches, and definitely getting
>> something running workloads hard on this might be helpful in maturing
>> Trollius. Basically coevolve it with a piece of OpenStack to know that
>> it can actually work on OpenStack and be a viable path forward.
>
>Replacing eventlet with asyncio is a huge change. I don't want to force
>users to use it right now, nor to do the change in one huge commit. The
>change will be done step by step, and when possible, optional. For
>example, in Olso Messaging, you can choose the executor: eventlet or
>blocking (and I want to add asyncio).
>
>Victor
>
>_______________________________________________
>OpenStack-dev mailing list
>OpenStack-dev at lists.openstack.org
>http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev




More information about the OpenStack-dev mailing list