[MDEV-6858] enforce_storage_engine option Created: 2014-10-09  Updated: 2015-08-07  Resolved: 2015-03-12

Status: Closed
Project: MariaDB Server
Component/s: OTHER
Fix Version/s: 10.1.4

Type: Task Priority: Major
Reporter: Colin Charles Assignee: Jan Lindström (Inactive)
Resolution: Fixed Votes: 0
Labels: None

Attachments: File enforce.diff    
Issue Links:
Duplicate
is duplicated by MDEV-8357 Ability to disable creation of MyISAM... Closed
Relates
relates to MDEV-8219 enforce_storage_engine cannot be set ... Closed
relates to MDEV-8576 Bootstrap should ignore --enforce-sto... Closed
relates to MDEV-8577 With enforce-storage-engine mysql_upg... Closed
relates to MDEV-8578 Wrong error code/message with enforce... Confirmed

 Description   

We should support enforce_storage_engine, like Percona Server 5.5/5.6 has. Description: http://www.percona.com/doc/percona-server/5.6/management/enforce_engine.html

Use case: To improve management – eg. enforce_storage_engine=InnoDB – this ensures that people don't create MyISAM tables by accident.

Customer requests: There have been no customer requests for this yet from MariaDB Corporation.

1. It is however likely used in HPCloud, DBaaS – see: https://github.com/saurabhsurana/trove-installer/blob/f7cf7824fb7536b16da073ba7fdb0e717da26fb1/saltstack/states/trove/taskmanager/mysql.config.template

2. We have had a migration from MariaDB 10 to Percona Server 5.6 at a bank in Germany performed by FromDual for this very reason – http://www.fromdual.ch/de/node/1074



 Comments   
Comment by Elena Stepanova [ 2014-10-09 ]

Setting the target version to 10.0 because Colin initially specified 10.0.14 as an affected version (it's gone now after moving from bug to task).

Comment by Jan Lindström (Inactive) [ 2015-01-15 ]

Colin, is this important for current customers? I will merge this to 10.x only if there is clear use case for this on customer environment(s).

R: Jan

Comment by Jan Lindström (Inactive) [ 2015-01-19 ]

revno: 4565
committer: Jan Lindström <jplindst@mariadb.org>
branch nick: 10.0-innodb
timestamp: Mon 2015-01-19 13:33:46 +0200
message:
MDEV-6858: enforce_storage_engine option

Merge from Percona Server enforced use of a specific storage engine
authored by Stewart Smith.

See patch attached.

Comment by Jan Lindström (Inactive) [ 2015-01-19 ]

Patch attached on MDEV.

Comment by Colin Charles [ 2015-02-03 ]

and assuming we want to improve upon it, some feedback:
14:14 < shinguz> I really love that feature
14:14 < shinguz> but percona implemented it too strcit
14:14 < shinguz> you should be capable to enforce (e.g. with super)
14:16 < shinguz> bytee: enforcing for "normal" users is good. to get away from
myisam to [innodb|tokudb|...]
14:16 < shinguz> but sometimes you have to overrule it. e.g. mysql.user table
14:17 < shinguz> so I think:
14:17 < shinguz> enforce_default_storage engine should count for all but you
can disable it on session level for user with super.
14:17 < shinguz> so you do not have to restart the database
14:17 < shinguz> that is the way I think it make most sense...?

Comment by Jan Lindström (Inactive) [ 2015-03-08 ]

Hi Serg,

Better to review this again as implementation is totally different, I tried to follow default_storage_engine implementation.

http://lists.askmonty.org/pipermail/commits/2015-March/007538.html

Comment by Jan Lindström (Inactive) [ 2015-03-10 ]

http://lists.askmonty.org/pipermail/commits/2015-March/007550.html

Comment by Jan Lindström (Inactive) [ 2015-03-12 ]

commit 8249dcaaebf8cd1944bd4ab7ccaa8b199e76d6f9
Author: Jan Lindström <jan.lindstrom@mariadb.com>
Date: Tue Mar 10 08:28:51 2015 +0200

MDEV-6858: enforce_storage_engine option

Merge from Percona Server enforced use of a specific storage engine
authored by Stewart Smith.

Modified to be session variable and modifiable only by SUPER. Use
similar implementation as default_storage_engine.

Comment by Otto Kekäläinen [ 2015-07-03 ]

Is this backported to 10.0.x or really only in 10.1.4 as the "Fix version" says?

Comment by Otto Kekäläinen [ 2015-07-07 ]

At least MariaDB 10.0.20 complains ```[ERROR] /usr/sbin/mysqld: unknown variable 'enforce_storage_engine=InnoDB'``` so it is not backported to 10.0 series.

Comment by Elena Stepanova [ 2015-07-07 ]

As the Fix version/s field states, it's 10.1 only. I don't know if such a thing can be backported into a long-after-GA version.

Generated at Thu Feb 08 07:15:06 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.