[openstack-dev] Re: [oslo] eventlet 0.17.3 is now fully Python 3 compatible

Mike Bayer mbayer at redhat.com
Mon Apr 13 15:29:35 UTC 2015



On 4/13/15 8:54 AM, Jeremy Stanley wrote:
> On 2015-04-13 04:03:49 -0400 (-0400), Victor Stinner wrote:
>> Great. Did you notice a performance regression?
> Nope. Worth noting, we implemented it primarily for its lack of
> compiled extensions, and to a lesser because it supports Python 3.x.
> I suspect if we do later run into any unexpected performance
> issues... well, it's pure Python. We have lots of people who can
> help.
>
>> Mike wrote that PyMySQL is much slower than MySQL-Python.

right so it's all a question of proportionality.     First off, some 
major performance improvements have been merged into PyMySQL since I 
wrote my wiki entry on it.   Secondly, one thing I didn't do in that 
wiki (the one here https://wiki.openstack.org/wiki/PyMySQL_evaluation) 
do a performance test of MySQL-Python and PyMySQL talking to a 
non-localhost database; as you can see in the RunSnake profiles I have 
at 
http://techspot.zzzeek.org/2015/02/15/asynchronous-python-and-databases/ 
the proportion of network takes up a lot more over the wire, and when 
you compare MySQL-Python to PyMySQL in that sense the differences in 
Python overhead vs. not become much less a proportion of the overhead 
already.

Take both drivers and put them way deep into the very elaborate 
operations we see Openstack DB backends doing and it's quite difficult 
to observe differences qualitatively; unless you really did speed tests 
for many thousands of identical operations on both.   It's usually in 
the "we tested how long it would take to do 10K or 100K rows / 
operations / etc" space that differences like these add up.     Which is 
why, as is in my blog post, I take the stance that using things like 
eventlet / gevent / async for database code in the first place is not 
really worth the extra headaches at all, even if they did prove to be 
faster than traditional threads, which also I show that they are in fact 
not, for CRUD-style database code as we do in Openstack apps.

> I don't recall him saying that specifically. Also last I recall he
> admitted he hadn't actually tested under the sorts of load we would
> drive in a production OpenStack service--merely performed some
> fairly artificial benchmarks looping known-expensive operations that
> may not ultimately reflect places in our codebase where introducing
> any sort of slowdown would be noticeable compared to other
> operations being performed.
>
> Chances are the Project Infrastructure systems will continue
> incrementally switching to PyMySQL mainly because it's easier to
> install and works on a broader variety of platforms.




More information about the OpenStack-dev mailing list