[Openstack] eventlet weirdness

Eric Windisch eric at cloudscaling.com
Thu Mar 1 21:37:57 UTC 2012


Just because MySQL is a C library doesn't necessarily mean it can't be made to work with coroutines. ZeroMQ is supported through eventlet.green.zmq and there exists geventmysql (although it appears to me as more a proof-of-concept).

Moving to a pure-python mysql library might be the path of least resistance as long as we're committed to eventlet. 

-- 
Eric Windisch


On Thursday, March 1, 2012 at 3:36 PM, Vishvananda Ishaya wrote:

> Yes it does. We actually tried to use a pool at diablo release and it was very broken. There was discussion about moving over to a pure-python mysql library, but it hasn't been tried yet.
> 
> Vish
> 
> On Mar 1, 2012, at 11:45 AM, Yun Mao wrote:
> 
> > There are plenty eventlet discussion recently but I'll stick my
> > question to this thread, although it's pretty much a separate
> > question. :)
> > 
> > How is MySQL access handled in eventlet? Presumably it's external C
> > library so it's not going to be monkey patched. Does that make every
> > db access call a blocking call? Thanks,
> > 
> > Yun
> > 
> > On Wed, Feb 29, 2012 at 9:18 PM, Johannes Erdfelt <johannes at erdfelt.com (mailto:johannes at erdfelt.com)> wrote:
> > > On Wed, Feb 29, 2012, Yun Mao <yunmao at gmail.com (mailto:yunmao at gmail.com)> wrote:
> > > > Thanks for the explanation. Let me see if I understand this.
> > > > 
> > > > 1. Eventlet will never have this problem if there is only 1 OS thread
> > > > -- let's call it main thread.
> > > 
> > > 
> > > 
> > > In fact, that's exactly what Python calls it :)
> > > 
> > > > 2. In Nova, there is only 1 OS thread unless you use xenapi and/or the
> > > > virt/firewall driver.
> > > > 3. The python logging module uses locks. Because of the monkey patch,
> > > > those locks are actually eventlet or "green" locks and may trigger a
> > > > green thread context switch.
> > > > 
> > > > Based on 1-3, does it make sense to say that in the other OS threads
> > > > (i.e. not main thread), if logging (plus other pure python library
> > > > code involving locking) is never used, and we do not run a eventlet
> > > > hub at all, we should never see this problem?
> > > 
> > > 
> > > 
> > > That should be correct. I'd have to double check all of the monkey
> > > patching that eventlet does to make sure there aren't other cases where
> > > you may inadvertently use eventlet primitives across real threads.
> > > 
> > > JE
> > > 
> > > 
> > > _______________________________________________
> > > Mailing list: https://launchpad.net/~openstack
> > > Post to : openstack at lists.launchpad.net (mailto:openstack at lists.launchpad.net)
> > > Unsubscribe : https://launchpad.net/~openstack
> > > More help : https://help.launchpad.net/ListHelp
> > 
> > 
> > 
> > _______________________________________________
> > Mailing list: https://launchpad.net/~openstack
> > Post to : openstack at lists.launchpad.net (mailto:openstack at lists.launchpad.net)
> > Unsubscribe : https://launchpad.net/~openstack
> > More help : https://help.launchpad.net/ListHelp
> 
> 
> 
> 
> _______________________________________________
> Mailing list: https://launchpad.net/~openstack
> Post to : openstack at lists.launchpad.net (mailto:openstack at lists.launchpad.net)
> Unsubscribe : https://launchpad.net/~openstack
> More help : https://help.launchpad.net/ListHelp







More information about the Openstack mailing list