openstack team mailing list archive
-
openstack team
-
Mailing list archive
-
Message #08192
Re: eventlet weirdness
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@xxxxxxxxxxx (mailto:johannes@xxxxxxxxxxx)> wrote:
> > > On Wed, Feb 29, 2012, Yun Mao <yunmao@xxxxxxxxx (mailto:yunmao@xxxxxxxxx)> 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@xxxxxxxxxxxxxxxxxxx (mailto:openstack@xxxxxxxxxxxxxxxxxxx)
> > > Unsubscribe : https://launchpad.net/~openstack
> > > More help : https://help.launchpad.net/ListHelp
> >
> >
> >
> > _______________________________________________
> > Mailing list: https://launchpad.net/~openstack
> > Post to : openstack@xxxxxxxxxxxxxxxxxxx (mailto:openstack@xxxxxxxxxxxxxxxxxxx)
> > Unsubscribe : https://launchpad.net/~openstack
> > More help : https://help.launchpad.net/ListHelp
>
>
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~openstack
> Post to : openstack@xxxxxxxxxxxxxxxxxxx (mailto:openstack@xxxxxxxxxxxxxxxxxxx)
> Unsubscribe : https://launchpad.net/~openstack
> More help : https://help.launchpad.net/ListHelp
References