Thursday, April 19, 2018

Some bugs and spring pilgrimage to Percona Live Santa Clara 2018

I am now in an airport, waiting for one of the four flights that will bring me to Percona Live Santa Clara 2018.  This is a good time to write some details about my tutorial on parallel replication.  But before talking about Percona Live, I will share thoughts on MySQL/MariaDB bugs that caught my attention in the last weeks/months (Valeriy: you clearly have an influence on me).

MySQL/MariaDB bugs

Bug#69223 (Give a warning on CREATE TABLE without PRIMARY KEY by Daniël van Eeden) was brought back to my attention by Daniël publishing an audit plugin for that (mysql-enforcepk).  Przemyslaw Malkowski also asked if we could still have that in MySQL 8.0 GA in Bug#69845 (Provide an option to prevent creation of tables without a unique/PK by Simon Mudd, which is a sister bug of Bug#69223 and not completely a duplicate as the first is asking for a warning and the second is asking to prevent the creation).  Let's be realistic, this has very little chances to be in 8.0 (but we could still dream, right ?) even if this is a feature request dating back from 2013.  The status quo on this feature request is disappointing as it has the potential to avoid well-known problems (I blogged about that in the past: The danger of no Primary Key when replicating in RBR).  A partial solution was introduced in MariaDB 10.1 (June 2014 !) with the option innodb_force_primary_key but this solution could still be improved (I still have to blog about it - this is in my TODO list - grab me at Percona Live to have more details).  Who will make those improvements first: Oracle or MariaDB ?

Update: MySQL 8.0.11 GA was released at the same time as I was writing this blog and still no sign is of the feature requested above.  Waiting two years for the next MySQL version to implement that is a little long, I would be completely ok with this feature being implemented in a minor version of MySQL 8.0 (or even 5.7).

This January 2018, I spent some time testing MySQL and MariaDB parallel replication during a Hack-a-thon (yes, there are three links in the word Hack-a-thon and there could even be more).  I shared some of my results at the MySQL Pre-FOSDEM day and I will share more results during my tutorial at Percona Live.  During those tests, I met the following bugs in MariaDB 10.2:
  1. MDEV-15135: SHOW GLOBAL STATUS can deadlock Optimistic Parallel Replication (so does a SELECT in INFORMATION_SCHEMA)
  2. MDEV-15152: Optimistic Parallel Replication deadlocks with START SLAVE UNTIL
  3. MDEV-15608: MariaDB sometimes crashes on rollback of a transaction with BLOBs
  4. Bug#89247: Deadlock with MTS when slave_preserve_commit_order = ON
The descriptions above are self-explanatory and I will give more details in my tutorial.  A small note about the 3rd one: I do not know if this is a bug only affecting MariaDB or if it is a bug in upstream (MariaDB 10.2 is back-porting InnoDB from MySQL 5.7).  I guess the fix will tell us more...

Percona Live Santa Clara 2018

As written above, I am giving a tutorial on MySQL and MariaDB parallel replication at Percona Live Santa Clara 2018.  This tutorial will be the concatenation of two previous parallel replication talks with some more details (if you attended one of the previous talks, you will definitely learn something new and you might also be surprised by new content even if you attended both previous talks).  If you do not have a conference ticket yet, you can use the discount code SeeMeSpeakPL18 that should give you 10% back on the conference price.

In my tutorial, I will again cover conservative and optimistic parallel replication in MariaDB.  Below, you can see, from left to right, the commit rate of single-threaded, conservative and optimistic replication (I already shared this graph many times):

Results for MySQL 8.0 are also interesting, here is a graph of the speedups of one of my tests from January 2018 that I shared at FOSDEM (you can expect more details in the tutorial):

I also re-ran tests on optimistic parallel replication with MariaDB 10.2, here is a preview of what I will show in the tutorial (this has never been shared before):

I am looking forward to meeting you at Percona Live.

No comments:

Post a Comment