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 <[email protected] > > (mailto:[email protected])> wrote: > > > On Wed, Feb 29, 2012, Yun Mao <[email protected] > > > (mailto:[email protected])> 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 : [email protected] > > > (mailto:[email protected]) > > > Unsubscribe : https://launchpad.net/~openstack > > > More help : https://help.launchpad.net/ListHelp > > > > > > > > _______________________________________________ > > Mailing list: https://launchpad.net/~openstack > > Post to : [email protected] > > (mailto:[email protected]) > > Unsubscribe : https://launchpad.net/~openstack > > More help : https://help.launchpad.net/ListHelp > > > > > _______________________________________________ > Mailing list: https://launchpad.net/~openstack > Post to : [email protected] (mailto:[email protected]) > Unsubscribe : https://launchpad.net/~openstack > More help : https://help.launchpad.net/ListHelp _______________________________________________ Mailing list: https://launchpad.net/~openstack Post to : [email protected] Unsubscribe : https://launchpad.net/~openstack More help : https://help.launchpad.net/ListHelp

