maria-discuss team mailing list archive
-
maria-discuss team
-
Mailing list archive
-
Message #01917
Re: Storage engines enabled by default - MySQL 5.6 vs. MariaDB Galera Cluster 10.0
Hi, Geoff!
On Oct 27, Geoff Montee wrote:
> I've been building MySQL 5.6 from source for a while. I recently started
> testing MariaDB Galera Cluster 10.0. When I build MariaDB Galera Cluster
> from source, I originally used the same cmake flags that I used for MySQL
> 5.6, along with the additional flags specified in Codership's documentation:
>
> http://galeracluster.com/documentation-webpages/installmariadbsrc.html
>
> My build process basically comes down to this:
>
> cmake . -L -DCMAKE_INSTALL_PREFIX=$MYQL_PREFIX -DMYSQL_DATADIR=$MYSQL_DATA
> -DWITH_SSL=yes -DWITH_READLINE=ON -DWITH_PIC=ON -DWITH_UNIT_TESTS=0
> -DWITH_WSREP=ON -DWITH_INNODB_DISALLOW_WRITES=1
> make
> make install
>
> With MariaDB Galera Cluster 10.0.14, the server that gets built does not
> have the Archive and Blackhole storage engines enabled by default. I do see
> that "ha_archive.so" and "ha_blackhole.so" were built and placed in
> plugin_dir, so I could probably enable them manually with INSTALL PLUGIN.
>
> This surprised me, because these engines are enabled by default in MySQL
> 5.6, and I see no mention of this difference here:
>
> https://mariadb.com/kb/en/mariadb-vs-mysql-compatibility/#incompatibilities-between-mariadb-100-and-mysql-56
>
> Of course, if I add "-DWITH_ARCHIVE_STORAGE_ENGINE=ON
> -DWITH_BLACKHOLE_STORAGE_ENGINE=ON" to my cmake arguments, then these
> engines are enabled in the MariaDB server that gets built.
>
> Is this difference intentional? If so, you may want to add a note to the
> documentation referenced above.
This has changed in MySQL-5.6 about in 2012, as a response to the internal bug
Bug#13595996 CREATE A CONSISTENT DEVELOPMENT CMAKE OPTION SET AND MAKE IT A DEFAULT
This change links storage engines statically into the server by default,
not only in mysql_release configuration, as it was before.
But we intentinally don't do that. There is a release configuration, as
specified in https://mariadb.com/kb/en/generic-build-instructions/ it is
cmake . -DBUILD_CONFIG=mysql_release
and if you don't use it, you can assemble your own configuration as you
see fit.
Regards,
Sergei
P.S. Note that both mysql and mariadb have a concept of "default"
engines - engines that are compiled in by default. They are:
mysql-5.6 $ grep -lw DEFAULT storage/*/CMakeLists.txt
storage/innobase/CMakeLists.txt
storage/ndb/CMakeLists.txt
storage/perfschema/CMakeLists.txt
mariadb-10.0 $ grep -lw DEFAULT storage/*/CMakeLists.txt
storage/maria/CMakeLists.txt
storage/perfschema/CMakeLists.txt
storage/xtradb/CMakeLists.txt
I'm not entirely sure why MySQL enables non-default engines by default,
looks kind of weird.
Follow ups
References