MySQL Blog Archive
For the latest blogs go to blogs.oracle.com/mysql
MySQL 8.0.21 Replication Enhancements

There is a new MySQL 8.0 release and it has some interesting replication features. The change log is available at the usual place, MySQL 8.0.21, but let me give you a brief summary.

  • Binary Log Checksums Support for Group Replication (WL#9038). This work done by Nuno Carvalho implements support for binary log checksums in Group Replication. Therefore the user can now utilize Group Replication with binary log checksums turned on.
  • Specify Through Which Endpoints Recovery Traffic Flows in Group Replication (WL#13767). This feature implemented by Anibal Pinto allows the user to specify which endpoints should the donor server advertise as endpoints that the joiners shall connect to to fetch binary logs for recovery purposes.
  • Re-classified Relevant Group Replication Information Log Messages as System Messages (WL#13769). This work done by Nuno Carvalho makes some group replication related messages to always be output to the error log. Specifically, the log messages related to membership lifecycle are always emitted. They are now classified as system messages.
  • START GROUP_REPLICATION Can Now Take Recovery Credentials as Parameters (WL#13768). This work done by Jaideep Karande allows the user to specify recovery credentials through the START GROUP_REPLICATION statement.

In addition to new functionality, we have also done some changes to defaults:

  • Increased default group_replication_member_expel_timeout (WL#13773). This work done by Pedro Ribeiro sets the default value of this variable to 5 instead of 0 (seconds) in Group Replication. This means that the system by default will tolerate transient network failures that last 10 seconds (5 seconds to confirm the suspicion plus a 5 seconds wait before eviction takes place). Therefore, if this time is elapsed and if the server ‘S’ remains unreachable, then server ‘S’ is expelled.
  • Increased default group_replication_autorejoin_tries (WL#13706). This work by Parveez Baig changes the default of the auto rejoin framework in Group Replication. By default it used to be inactive (it was set to 0). With the new default (3), whenever a network partition is resolved, members that were waiting for it to be resolved and end up expelled in the process, will automatically try to join the cluster back, regardless for how long they waited for the partition to resolve itself.

In addition to changing the default of a couple of Group Replication variables we have also relaxed the limit of an existing one:

  • Reduced the Lower Bound of group_replication_message_cache_size (WL#13979). This work by Luis Soares makes it possible to set the maximum limit of the XCom message cache to a value as low as 128MB (the lower bound used to be capped at 1GB).

Finally, we have done some internal enhancements to our Paxos kernel:

  • Refactorings and Code Enhancements to XCom. This work by Ole-Hjalmar Kristensen refactors some of the XCom internals and fixes also a few minor bugs.
  • Enhancements to Failure Detection. This work by Tiago Jorge and Tiago Vale introduced a couple of important fixes that reduce entropy when dealing with transient failures or network disconnects that would cause asymmetric failure detection.
  • Compile XCom as C++ (WL#13842). This work by Tiago vale refactors some of the XCom internals and makes it easier to build XCom with C++.

This time around it is a slightly longer list of enhancements and other things worth noting. Have fun trying these out in MySQL 8.0.21 and send us feedback either by commenting on this blog post or by submitting a feature request or even a bug. Enjoy!