Mike Bayer wrote:
On 09/21/2016 11:41 AM, Joshua Harlow wrote:
I've seen something similar at https://review.openstack.org/#/c/316935/
Maybe its time we asked again why are we still using eventlet and do we
need to anymore. What functionality of it are people actually taking
advantage of? If it's supporting libraries like oslo.service then it'd
probably be useful to talk to the ceilometer folks who replaced
oslo.service with something else (another oslo library for periodics and
https://github.com/sileht/cotyledon for service oriented tasks).
Plus Keystone has gotten off of it.
I actually like eventlet and gevent quite a lot. I am using it in a new
middleware component that will be involved with database connection
pooling. However, I *don't* use the global monkeypatching aspect. That's
where this all goes very wrong. Things that are designed for synchronous
operations, like database-oriented business methods as well as the work
of the database driver itself, should run within threads. You can in
fact use eventlet/gevent's APIs explicitly and you can even combine it
with traditional threading explicitly. I'm actually using a stdlib Queue
(carefully) to send data between greenlets and threads. Madness!
Agreed (thanks for making that clear), it's really the monkeying that
kills things, not eventlet/gevent directly, fair point.
OpenStack Development Mailing List (not for usage questions)