I’ve had this question several times when presenting and once via an internal email thread so I figure I might as well write about it: What is the default transactional engine in MariaDB 10.0? The answer is simple – it is XtraDB.
However this answer has some history: initial releases of MariaDB 10 actually shipped with InnoDB from MySQL 5.6. Only in 10.0.9 RC did the default switch back to being XtraDB. As MariaDB users previously know, XtraDB was the default InnoDB in 5.1, 5.2, 5.3, and 5.5 too. As always, you can switch easily between InnoDB/XtraDB – read more in: Using InnoDB instead of XtraDB.
How do you tell what version of InnoDB or XtraDB you are running? Simply, run: SHOW GLOBAL VARIABLES LIKE 'innodb_version';
MariaDB 10.0 (read more: What is MariaDB 10.0):
Version | InnoDB | XtraDB | Status | Date |
10.0.10 | 5.6.15 | 5.6.15-63.0 * | GA | 31 Mar 2014 |
10.0.9 | 5.6.15 | 5.6.15-63.0 * | RC | 10 Mar 2014 |
10.0.8 | 5.6.14 * | 5.6.14-62.0 | RC | 10 Feb 2014 |
10.0.7 | 5.6.10 * | 5.6.14-62.0 | Beta | 27 Dec 2013 |
10.0.6 | 1.2.6 * | n/a | Beta | 18 Nov 2013 |
10.0.5 | 1.2.5 * | n/a | Beta | 7 Nov 2013 |
10.0.4 | 1.2.4 * (5.6.10 merge) | n/a | Alpha | 16 Aug 2013 |
10.0.3 | 10.0.3-MariaDB * | n/a | Alpha | 11 Jun 2013 |
10.0.2 | 10.0.2-MariaDB * | n/a | Alpha | 24 Apr 2013 |
10.0.1 | 1.2.1 * | n/a | Alpha | 6 Feb 2013 |
10.0.0 | 1.2.0 (5.6.5 merge) | n/a | Alpha | 12 Nov 2012 |
The asterisk (*) denotes the default engine choice.
Why are there odd InnoDB versions from 10.0.0 – 10.0.6? I can only point this to merge oddities. storage/innobase/include/univ.i is the file which contains common definitions such as INNODB_VERSION_MAJOR, INNODB_VERSION_MINOR and INNODB_VERSION_BUGFIX. INNODB_VERSION_BUGFIX in 10.0.6 pointed to MYSQL_VERSION_PATCH which you get from the VERSION file. For XtraDB, you will also see PERCONA_INNODB_VERSION in univ.i.
So, when XtraDB is the default (10.0.9 and 10.0.10 and releases going forward) you can put in my.cnf to load InnoDB:
ignore_builtin_innodb plugin_load=innodb=ha_innodb.so
When InnoDB is the default (10.0.8 and 10.0.7) and XtraDB was merged, you can put in my.cnf to load XtraDB:
ignore_builtin_innodb plugin_load=innodb=ha_xtradb.so
Percona Server only became GA with 5.6.13-61.0 which was 7 Oct 2013 which explains why the MariaDB 10.0.6 beta didn’t include a XtraDB.
Percona Server only ships XtraDB (source code in storage/innobase) while MariaDB ships both InnoDB (storage/innobase) as well as XtraDB (storage/xtradb).
If you want older release information about InnoDB plugin versions, a great resource is Chris Calendar’s blog post: InnoDB Plugin Versions. I’m just glad that going forward the InnoDB version will just match the release version as you can see with 10.0.7 and later.