MySQL 8.0.16 has been released last Thursday. In it, you can find some new replication features. Here is a quick summary. Follow-up blog posts will provide details about these features.
- Large Messages Fragmentation Layer for Group Replication. Tiago Vale’s work, introduces message fragmentation to the Group Communication Framework. Group Replication’s Paxos engine relies on a single threaded message passing kernel (XCom). In some cases, if messages are large enough, the thread could be busy handling it and delay attending failure detection related tasks, which could lead to false positives in the failure detector. The fragmentation feature allows the kernel thread to interleave failure detection tasks with communication event handling. This enhances the interaction between the failure detector and group communication and makes the whole end-to-end experience, of handling a large message through Group Replication, smoother.
- Tunable Paxos Message Cache for Group Replication. Andre Negrão has extended XCom’s message cache with dynamic resizing capabilities. The cache is no longer bounded by a fixed number of entries and instead grows dynamically as long as the size limit is observed. In addition, the user can tweak the cache limit himself, to be able to make Group Replication cope with workloads that under extreme conditions require a larger message cache size. An example of an extreme condition would be an incoming workload with a high rate of read-write transactions, while at the same time there is an unreachable member in the group.
- Auto-rejoin for Group Replication. Ricardo Ferreira has extended Group Replication making it possible for servers, that are expelled from the group, to automatically rejoin without the need for the DBA or Operator to step in. This extends Group Replication automation and thus removes the burden of dealing with transient network issues from the DBA.
- SQL command for Binary Log Encryption Key Rotation. Daogang Qu has implemented a command that gives the user the ability to rotate the binary log master key. You may want to rotate the binary log master key to comply with regulations that requires you to rotate the key periodically, or because your current key was actually compromised. On key rotation, new binary log files will have their binlog file password encrypted with the new master key. Existing files will also have their binlog file passwords re-encrypted. Thus, master key rotation protects existing files as well. That is done very efficiently, quickly and without downtime due to the two tiers binary log encryption design. Finally, the command also cleans up the keyring automatically, removing master keys that are not needed anymore.
- Partition metadata into the Binary Log. Neha Kumari has extended the binary log to include additional metadata, in Row-based format, that refers to the table partition that the changes recorded in the log are related to.
In addition to these new features, we have also changed the default configuration for the following option:
- group_replication_exit_state_action defaults to READ_ONLY. Jaideep Karande has changed the default of group_replication_exit_state_action back to READ_ONLY in MySQL 8. It had been ABORT_SERVER since the feature was introduced in MySQL 8.0.12 (WL#12659). This change was motivated by the feedback we got from our users.
Alright! These are the new replication goodies in MySQL 8.0.16. Enjoy, and as always, let us know if you have feedback. Either comment on this blog post or submit a feature request or even a bug.