New MariaDB/MySQL storage engines such as MyRocks and TokuDB have
renewed interest in using engines other than InnoDB. This is
great, but also presents new challenges. In this article, I will
describe work that I am currently finishing, and which addresses
one such challenge.
For example, the left bar in the figure shows what happens to
MyRocks replication performance when used with a default install
where the replication state table uses InnoDB. The middle bar
shows the performance improvement from my patch.
Current MariaDB and MySQL replication uses tables to
transactionally record the replication state (eg
mysql.gtid_slave_pos). When non-InnoDB storage
engines are introduced the question becomes: What engine should
be used for the replication table? Any choice will penalise other
engines heavily by injecting a cross-engine transaction with
every replicated change. Unless all tables can be
migrated to the …
[Read more]