Add an new Olso Messaging executor using asyncio

Registered by Victor Stinner on 2014-01-22

This blueprint has been superseded. See the newer blueprint "Add a asyncio executor to oslo.messaging" for updated plans.

The Enovance company is working actively on porting OpenStack on Python 3, see the status on the Python3 page. Eventlet dependency blocks the portage because it is not yet compatible with Python 3. Even if it would be available, we would like to get ride of eventlet for the reasons listed below.

We choose to start the work in the Olso Messaging project because its design allows to use different "executor drivers", a function to run a task asynchronously. Olso Messaging is a core component and so should be ported on Python 3 first to be able to port other components on Python 3.

The asyncio module is a new and modern asynchronous library which is part of the Python 3.4 standard library. The idea is to add a new asyncio executor to Olso Messaging. At the beginning, asyncio will reuse the greenlet event loop. If an OpenStack server doesn't use eventlet anymore, it will be possible to use an asyncio event loop.

Full specifications:
https://wiki.openstack.org/wiki/Oslo/blueprints/asyncio

Superseded by:
https://blueprints.launchpad.net/oslo.messaging/+spec/asyncio-executor/

Blueprint information

Status:
Complete
Approver:
None
Priority:
Undefined
Drafter:
Victor Stinner
Direction:
Needs approval
Assignee:
Victor Stinner
Definition:
Superseded
Series goal:
None
Implementation:
Needs Code Review
Milestone target:
None
Started by
Victor Stinner on 2014-02-24
Completed by
Victor Stinner on 2014-02-12

Related branches

Sprints

Whiteboard

Hi victor,

There's already a blueprint for the asyncio work with some comments in it. Would you like to chime in there? https://blueprints.launchpad.net/oslo.messaging/+spec/asyncio-executor

If you're willing to work on this, I'm happy to give it to you.
-- flaper87

Gerrit topic: https://review.openstack.org/#q,topic:bp/https,n,z

Addressed by: https://review.openstack.org/70948
    Add a new asynchronous executor based on Trollius

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.