When we changed the default db driver from python-mysql (links to c lib, not eventlet aware) to pymysql (pure python, does not block greenlets) the Neutron job failure rate went way up.
http://logs.openstack.org/66/190166/1/gate/gate-tempest-dsvm-neutron-full/d39af17/logs/screen-q-svc.txt.gz?level=TRACE#_2015-06-12_00_14_36_581 is an example
2015-06-12 00:14:36.581 4696 ERROR neutron.plugins.ml2.plugin DBDeadlock: (pymysql.err.InternalError) (1213, u'Deadlock found when trying to get lock; try restarting transaction') [SQL: u'DELETE FROM ipallocationpools WHERE ipallocationpools.id = %s'] [parameters: (u'09572654-65fd-4cf1-999b-3193b405f111',)]
I believe this is because the DB layer in neutron was depending on the implicit synchronization that was created by python-mysql blocking it's worker on the database. With that removed in pymysql, there is a bunch of racing going on that needs explicit synchronization.
Note, this will impact the ability to get to python3.