Bug 1041083 - [RFE][nova]: Direct MySQLdb implementation
Summary: [RFE][nova]: Direct MySQLdb implementation
Keywords:
Status: CLOSED UPSTREAM
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: RFEs
Version: unspecified
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
: ---
Assignee: RHOS Maint
QA Contact:
URL: https://blueprints.launchpad.net/nova...
Whiteboard: upstream_milestone_none upstream_stat...
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-12-12 13:35 UTC by RHOS Integration
Modified: 2015-03-19 17:44 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Enhancement
Doc Text:
Clone Of:
Environment:
Last Closed: 2015-03-19 17:44:43 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

Description RHOS Integration 2013-12-12 13:35:40 UTC
Cloned from launchpad blueprint https://blueprints.launchpad.net/nova/+spec/db-mysqldb-impl.

Description:

With the move of all DB calls for nova-compute going to nova-conductor, it becomes important to have efficient DB calls that do not block the whole python process.  It's been found that:

1) sqlalchemy calls are tremendously slower than using direct calls with mysqldb.  Even when using more low level sqlalchemy calls without ORM, this is true.
2) Using eventlet.tpool with sqlalchemy falls down.  sqlalchemy is doing something that is exercising bugs with eventlet.tpool or is doing something incompatible.  We end up in a state where the whole process is hung for reasons that are not extremely easy to track down.  Even if tpool worked with sqlalchemy, the improvements by using MySQLdb directly are significant enough to provide it as an implementation option.

See: http://paste.openstack.org/show/31019/

The goal here will be to implement DB api calls 1 by 1, falling back to sqlalchemy for methods not implemented yet.

Specification URL (additional information):

None


Note You need to log in before you can comment on or make changes to this bug.