Switch from MySQLdb to MySQL Connector

Registered by Ihar Hrachyshka

Current MySQL client library we use (MySQLdb) plays bad with eventlet and may result in db deadlocks [1]. It also blocks execution of other green threads while we're deep in the library code [2]. To avoid those issues, we need to switch to a pure python library with better eventlet support. MySQL Connector is an official mysql python client library and has the needed qualities.

[1]: https://wiki.openstack.org/wiki/OpenStack_and_SQLAlchemy#MySQLdb_.2B_eventlet_.3D_sad
[2]: http://docs.openstack.org/developer/nova/devref/threading.html

Blueprint information

Status:
Complete
Approver:
None
Priority:
Undefined
Drafter:
Ihar Hrachyshka
Direction:
Needs approval
Assignee:
Ihar Hrachyshka
Definition:
Obsolete
Series goal:
None
Implementation:
Unknown
Milestone target:
None
Completed by
Ihar Hrachyshka

Related branches

Sprints

Whiteboard

Community discussion showed that if we consider the switch, we better do it globally for all the projects to avoid additional burden on deployers and developers. So I'm moving the spec to oslo: https://blueprints.launchpad.net/oslo/+spec/switch-to-mysql-connector

Gerrit topic: https://review.openstack.org/#q,topic:bp/switch-to-mysql-connector,n,z

Addressed by: https://review.openstack.org/104905
    Switch from MySQLdb to MySQL Connector

Addressed by: https://review.openstack.org/110016
    Use oslo.db create_engine instead of SQLAlchemy

Gerrit topic: https://review.openstack.org/#q,topic:bug/1350942,n,z

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.