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 …