[openstack-dev] [Octavia] Which threading library?

Mike Bayer mbayer at redhat.com
Sat Sep 13 14:38:29 UTC 2014


On Sep 12, 2014, at 5:53 PM, Eichberger, German <german.eichberger at hp.com> wrote:

> Hi,
>  
> I think the “standard” threading library for OpenStack is eventlet – however, it seems that Oslo is spearheading efforts to get to a more compatible one (see http://techs.enovance.com/6562/asyncio-openstack-python3) I am now wondering since we are starting fresh if we should embrace (a potential) future or stick with eventlet and all its flaws?

the so-called “flaws” of implicit async are up for debate.    A “flaw” of asyncio is that it requires a full rewrite of code that uses it, as well as all libraries which it consumes that also happen to use IO.    This includes the particularly salient topic that none of the Python database APIs that exist, other than psycopg2, have any support for true non-blocking code at the IO level, without using monkeypatching.  the standard Python DBAPI (pep 249) has no support for explicit async, so any APIs that do so are ad-hoc (see http://initd.org/psycopg/docs/advanced.html#async-support for psycopg2’s very well done, but entirely non-standard API in this regard).

Once you’re on explicit async, simple imperative code that happens to make calls which imply IO is no longer possible.   This is kind of a blocker to end-to-end integration of asyncio in all of Openstack, rather than just making use of it in those areas where it is already directly applicable.

This has been discussed in depth at lists.openstack.org/pipermail/openstack-dev/2014-July/039291.html.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20140913/fd98971d/attachment.html>


More information about the OpenStack-dev mailing list