maria-discuss team mailing list archive
Mailing list archive
Re: Storage engines enabled by default - MySQL 5.6 vs. MariaDB Galera Cluster 10.0
On Tue, Oct 28, 2014 at 12:39 PM, Sergei Golubchik <serg@xxxxxxxxxxx> wrote:
> 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
> > http://galeracluster.com/documentation-webpages/installmariadbsrc.html
> > My build process basically comes down to this:
> > cmake . -L -DCMAKE_INSTALL_PREFIX=$MYQL_PREFIX
> > -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
> > 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:
> > 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#13595996 CREATE A CONSISTENT DEVELOPMENT CMAKE OPTION SET AND MAKE
> IT A DEFAULT
Interesting. I just checked MySQL 5.5, and when I build it with the above
flags, it has the same behavior as MariaDB 10.0: the Archive and Blackhole
storage engines are only included as shared libraries in plugin_dir.
Thanks for that clarification.
> 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.
Thanks! I'll change my build scripts.
> 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
> mariadb-10.0 $ grep -lw DEFAULT storage/*/CMakeLists.txt
> I'm not entirely sure why MySQL enables non-default engines by default,
> looks kind of weird.
That is weird.
A quick look at the MySQL 5.6 source code suggests that these storage
engines are being enabled in cmake/build_configurations/feature_set.cmake.