Tuesday, July 23, 2019

MySQL 8.0.17 Release and The Clone Plugin

MySQL 8.0.17 is officially released Yesterday. The most talked feature is the clone plugin, which enables the automatic node provisioning from an existing node (a Donor). This also closes the gap between MySQL Group Replication and Galera Cluster on usability.

Congrats to MySQL engineering team on the excellent work! Specially expose the visibility of the operations:

mysql> SELECT STATE FROM performance_schema.clone_status;
+-----------+
| STATE     |
+-----------+
| Completed |
+-----------+
1 row in set (0.02 sec)

mysql> SELECT STAGE, STATE, END_TIME FROM performance_schema.clone_progress;
+-----------+-------------+----------------------------+
| STAGE     | STATE       | END_TIME                   |
+-----------+-------------+----------------------------+
| DROP DATA | Completed   | 2019-07-23 12:27:36.059325 |
| FILE COPY | Completed   | 2019-07-23 12:27:36.258573 |
| PAGE COPY | Completed   | 2019-07-23 12:27:36.265563 |
| REDO COPY | Completed   | 2019-07-23 12:27:36.270240 |
| FILE SYNC | Completed   | 2019-07-23 12:27:36.377404 |
| RESTART   | Not Started | NULL                       |
| RECOVERY  | Not Started | NULL                       |
+-----------+-------------+----------------------------+
7 rows in set (0.02 sec)

There is an excellent blog by Miguel Araújo - A Breakthrough in Usability – Automatic Node Provisioning! The article describes why the clone plugin is needed; and the difference between the binlog-based incremental recovery and the clone-based recovery. 

Other articles on the same subject are:
If you like to learn the design and how does it work internally, suggest to read the related worklogs:
  • WL#9209: InnoDB: Clone local replica
  • WL#9210: InnoDB: Clone remote replica
  • WL#9211: InnoDB: Clone Replication Coordinates
  • WL#9682: InnoDB: Support cloning encrypted and compressed database
  • WL#11636: InnoDB: Clone Remote provisioning
Most of other features in MySQL 8.0.17 are discussed in my previous blog. The more accurate list of changes are in Geir's blog, and 8.0.17 release notes.

No comments:

Post a Comment