[openstack-dev] [Solum] MySQL Storage Engine

Adrian Otto adrian.otto at rackspace.com
Wed Dec 4 21:06:07 UTC 2013


On Dec 4, 2013, at 12:32 PM, Monty Taylor <mordred at inaugust.com> wrote:

> On 12/04/2013 03:25 PM, Clint Byrum wrote:
>> Excerpts from Paul Montgomery's message of 2013-12-04 12:04:06 -0800:
>>> TLDR: Should Solum log a warning if operators do not use the InnoDB
>>> storage engine with MySQL in Solum's control plane?
>>> 
>>> 
>>> Details:
>>> 
>>> I was looking at: https://review.openstack.org/#/c/57024/
>>> Models.py to be specific.
>>> 
>>> The default storage engine is InnoDB for MySQL which is good.  I took a
>>> quick look at the storage engines and only InnoDB seems reasonable for the
>>> Solum control plane (it is ACID complaint).  I assume that we'll all be
>>> coding towards an ACID compliant database for performance (not having to
>>> revalidate database writes and consistency and such) and ease of
>>> development.
>>> 
>>> If all of that is true, should we log a warning to the operator that they
>>> are using an untested and potentially problematic storage engine (which in
>>> a worst case scenario can corrupt their data)?  Should we even enable an
>>> operator to change the storage engine through configuration?  I think
>>> enabling that configuration is fine as long as we make sure that the
>>> operator knows that they are on their own with this unsupported
>>> configuration but I welcome thoughts from the group on this topic.
>>> 
>> 
>> Just assume MyISAM _does not exist_. It is 2013 for crying out loud.
>> 
>> If somebody accidentally uses MyISAM, point at them and laugh, but then
>> do help them pick up the pieces when it breaks.
>> 
>> In all seriousness, if you can force the engine to InnoDB, do that.
>> Otherwise, just ignore this. We are all consenting adults here and if
>> people cant' RTFM on MySQL, they shouldn't be storing data in it.
> 
> +1000

So are you suggesting we have a bit of database code in Solum that would quickly check the Engine of each table upon startup. Something like:

SHOT TABLE STATUS LIKE '%solum%';

…and iterate the Engine column looking for anything not InnoDB, and logging a warning error if other values are found?

Or, are you suggesting that we just trust people not to be fools, and leave this subject alone completely?

Thanks,

Adrian


More information about the OpenStack-dev mailing list