MySQL database tables are using the MyISAM engine

Bug #741274 reported by justinsb on 2011-03-23
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Low
Jason Cannavale

Bug Description

MySQL database tables seem to be using the MyISAM engine. They should use InnoDB.

Related branches

Jay Pipes (jaypipes) wrote :

Agreed. The way to do this is to use mysql_engine='InnoDB' in the Table constructors. In the case of Nova, a migrate script should be done. Simple enough migrate script, though :) Just make a 0XX_mysql_upgrade.sql script that contains a bunch of these:

ALTER TABLE servers ENGINE=InnoDB;

repeat that for each table in the DB...

Changed in nova:
status: New → Triaged
importance: Undecided → Low
Jay Pipes (jaypipes) wrote :

Setting to Low instead of Wishlist because this is really a performance/scalability issue. Low because the fix is easy and can be done by a DBA outside of the Nova code as a workaround anyway.

Josh Kearney (jk0) wrote :

Looks like they're already set to InnoDB in SA, but apparently not being honored?

jkearney@nova:~/openstack/nova$ bzr blame ./nova/db/sqlalchemy/models.py | grep mysql_eng
237.1.69 vishvan | __table_args__ = {'mysql_engine': 'InnoDB'}
                  | {'mysql_engine': 'InnoDB'})
379.3.1 vishvan | {'mysql_engine': 'InnoDB'})
                  | {'mysql_engine': 'InnoDB'})

Jay Pipes (jaypipes) wrote :

If the mysql_engine kwargs was added *after* the db was originally introduced, then migrates scripts are needed. For this, though, no need to create a Python migrate script. Just add a 0XX_mysql_upgrade.sql script that contains the MySQL-specific ALTER TABLE ... ENGINE=InnoDB; statements in it.

Josh Kearney (jk0) wrote :

This was on a fresh DB, but the tables are still being set to MyISAM. I don't think the kwargs are being used.

Hmm, this definitely used to work, perhaps the switch to db sync broke it.

On Mar 29, 2011, at 10:06 AM, Josh Kearney wrote:

> This was on a fresh DB, but the tables are still being set to MyISAM. I
> don't think the kwargs are being used.
>
> --
> You received this bug notification because you are a member of Nova Bug
> Team, which is subscribed to OpenStack Compute (nova).
> https://bugs.launchpad.net/bugs/741274
>
> Title:
> MySQL database tables are using the MyISAM engine
>
> Status in OpenStack Compute (Nova):
> Triaged
>
> Bug description:
> MySQL database tables seem to be using the MyISAM engine. They should
> use InnoDB.

Changed in nova:
assignee: nobody → Jason Cannavale (jason-cannavale-com)
Changed in nova:
status: Triaged → In Progress
Changed in nova:
status: In Progress → Fix Committed
Thierry Carrez (ttx) on 2011-06-28
Changed in nova:
milestone: none → diablo-2
Thierry Carrez (ttx) on 2011-09-22
Changed in nova:
milestone: diablo-2 → 2011.3
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers