At the MariaDB Server Developer's meeting in Amsterdam, Oct 8 2016. This was the deck to talk about what MariaDB Server 10.1/10.2 might be missing from MySQL versions up to 5.7. The focus is on compatibility of MariaDB Server with MySQL.
Colin Charles, firstname.lastname@example.org on the lists/jira / bytee on IRC
#maria / @bytebot on Twitter / byte on github / http://
MariaDB Server Developer’s meeting 2016, Amsterdam, Netherlands
8 October 2016
• Chief Evangelist (in the CTO ofﬁce), Percona Inc
• Founding team of MariaDB Server (2009-2016), previously
at Monty Program Ab, merged with SkySQL Ab, now
• Formerly MySQL AB (exit: Sun Microsystems)
• Past lives include Fedora Project (FESCO), OpenOfﬁce.org
• MySQL Community Contributor of the Year Award winner
The “MariaDB” Code of
• All MariaDB contributors are expected to follow the Ubuntu Code Of
• Ubuntu is about showing humanity to one another: the word itself
captures the spirit of being human.
• Be considerate. Be respectful. Take responsibility for our words and
actions. Be collaborative. Value decisiveness, clarity and
consensus. Ask for help when unsure. Step down considerately.
• Open meritocracy. Teamwork. Credit. We value discussion, data and
decisiveness. Courage and considerateness. Conﬂicts of interest.
• “People within a corporation become its face” - Shahid Kamal,
gaming entrepreneur, @shahidkamal
Deﬁne: compatibility (OED)
• A state in which two things are able to exist or
occur together without problems or conﬂict.
• Verbal: MySQL 5.6, should be comparable to
MariaDB Server 10.1. And for 10.2 it should be
compatible with MySQL 5.7 — Monty, yesterday (7
• mariadb.org/about/: It is an enhanced, drop-in
replacement for MySQL.
From the KB
• Tracker for documentation of above page: https://jira.mariadb.org/browse/
• https://jira.mariadb.org/browse/MDEV-9056 - target
10.2, not in the current beta release
• what about mysqlsh? (the MySQL Shell)
• MariaDB Server: table or tablespace encryption, fully encrypted logs
• MySQL: tablespace encryption, innodb_ﬁle_per_table, logs
• Do we aim for compatibility or make it clear that it won’t be (saying
“implemented differently” doesn’t imply incompatibility!)
• Polishing encryption?
• Galera’s gcache? Logs? (https://jira.mariadb.org/browse/
• mysqlbinlog reading encrypted logs? https://jira.mariadb.org/
CJK language support
• Add “ngram” support to MariaDB Server: https://
• Add “MeCab” support to MariaDB Server: https://
• InnoDB 5.7 is now merged, there is no 10.2 target
on the above two issues
• gb18030 support: https://jira.mariadb.org/browse/
Multiple triggers per table
• Pushed, ready for testing in 10.2.3
• How often is replication from 5.6/5.7 tested for 10.1/10.2? (https://
• What (if any) is the plan to make replication work from 10.2 ->
• FR: Allow replication from MySQL 5.6+ when GTID is enabled on
the master - https://jira.mariadb.org/browse/MDEV-4487 (resolved 9
• Multi-source replication is present in 5.7 - is it compatible with 10.2?
• Time delayed replication? https://jira.mariadb.org/browse/
• Off by default, but remember, it can’t be turned on
• sys schema?
• Is it going to get merged? (87 “rows” vs 52)
• InnoDB memcached (upstream, not the GSoC
• sha256_password plugin? https://jira.mariadb.org/
• removing mysql_old_password?
• validate_password on by default in 5.7
How did we do from this time, last year?
by Eric Herman)
• GTID has domain ID
(which is an innovation in
• Knowing scenarios where
one can swap, i.e. when
one has a multi-vendor
strategy, so that people
can experimentally try
• using innovation may limit
your options, i.e. how to
• if you use out of order
parallel replication in
MariaDB, you can't go
away to somewhere else.
So if you use innovation
and depend on it, this
must be clearly
• Virtual columns +
replication will work
• Need speciﬁc
master/slave protocol on
how they talk, how they
shouldn't talk. Replication
protocol docs needs
• Goal is to be syntax
• SHOW EXPLAIN
• Multi-source replication
• Replication ﬁlters
• slave parallel thread vs
slave parallel workers
• Maybe write a rewrite
plugin for MySQL 5.7 to
make it more compatible
• What do we do with
regards to RDS and
• Being compatible to
When doing development
we do test against
• 10.0 needed work on
gine (and 10.1 has this).
• To make it easier we need
to ensure that options are
easy for people (DBAs)
whom are doing both
MariaDB and MySQL.
Allow simple as possible
• Importing from
import all good and
stuff" (audience breaks
out into laughter)
• super readonly mode - its
everywhere, so it has to
be in MariaDB Server 10.2
• InnoDB - follow MySQL
InnoDB. When innovation
then we need to make it
clear how to go back.
• Goal: default optimizer
changes only happen at
• missing: crash slave
replication with current
• missing: minimal RBR
• Optimizer trace
• Minimal RBR - Minimal/NOBLOB Binlog Row Image
replication fails when tables from master have
different PK in slave https://jira.mariadb.org/
• Syntax compatibility (explain for connection <id> -
• MySQL: https://dev.mysql.com/downloads/repo/
yum/ - grab a package — e.g. mysql57-
• MariaDB Server: https://downloads.mariadb.org/
mariadb/repositories/ - copy/paste, edit a ﬁle, then
• Percona Server: https://www.percona.com/doc/
yum install Percona-Server-server-57
• MySQL / Percona Server
• service mysqld start
• grep 'temporary password' /var/log/mysqld.log
• ALTER USER 'root'@'localhost' IDENTIFIED BY
• MariaDB Server? mysql -uroot “just works”
mysql.user table changes
• MariaDB Server and MySQL differ here (not just by addition of
roles) - mysql.user.password is just
mysql.user.authentication_string (is MariaDB Server removing
• Password expiry is coming? https://jira.mariadb.org/browse/
• Password last changed? Lifetime?
• ACCOUNT LOCK/UNLOCK
• VALIDATE_PASSWORD_STRENGTH() SQL function doesn’t
work in MariaDB Server
• Optimizer hints (and the cost based optimizer itself?) - https://
• RENAME INDEX - https://jira.mariadb.org/browse/MDEV-7318
• Query rewriting? - https://jira.mariadb.org/browse/MDEV-5561
• GIS: GeoJSON functions? Geohash functions?
• SELECT ST_GeoHash(180,0,10), ST_GeoHash(-180,-90,15);
• including new tools like mysql_ssl_rsa_setup ? mysqlpump?
• why will xtrabackup not work with MariaDB Server encryption
or compression? https://jira.mariadb.org/browse/MDEV-10367
• When merging XtraDB, why isn’t it complete, with backup
• tools that require MySQL GTID don’t work with MariaDB
Server - ideas? (e.g. mysqlfailover, mysqlrpladmin, MHA, etc.)
• vitess, started life on just MariaDB Server, but note they
support 5.6/5.7 and only 10.0
• SPIDER works better if its recompiled (doesn’t matter if its
included, it isn’t “feature complete”)
• Open since March 2015. Priority provided since May 2016.
• Are people still using HandlerSocket?
• What needs to get deprecated so focus can happen on other
• How often are the 5.6/5.7 mysqltest’s run on
• How often are upgrades from 5.6/5.7 tested?
• MySQL 8 brings roles, CTEs, (soon window
functions), transactional data dictionary,
histograms, SDIs (instead of FRMs), etc.
• Will MariaDB Server 10.3 aim to be compatible with