We have brought further enhancement to MySQL Group Replication 5.7 release by backporting some most requested features to MySQL 5.7.20 release:
- Member weight for automatic primary election on failover
- Disallow writes after leaving the group
And to MySQL 5.7.19 release:
- Transaction savepoint support
Member weight for automatic primary election on failover
The Member weight for automatic primary election on failover feature will allow user to influence primary member election using a integer member weight value. This feature was first introduced in MySQL 8.0.2, and now backported with one additional change to handle groups containing members that support the new member weight, and members that still only recognize the old server_uuid based algorithm.
When a group contains members of same major version but different minor versions, where some members use primary member election based on server_uuid while others use group_replication_member_weight, then primary member must be elected having lower server_uuid from the members of the lower major version.
Consider a group of six members:
three members having MySQL Server version 5.7.19: M1, M2, M3
two members having MySQL Server version 5.7.20: M4, M5
one member having MySQL Server version 8.0.2: M6
The group is bootstrapped from M1, so it will be the first primary member. After M1 stops (due to error or STOP GROUP_REPLICATION execution), election will be held between M2, M3, M4 and M5 based on server_uuid. The member weight based election gets held only when all the members support member weight based election. So, in this case, when all 5.7.19 version members stop (due to error or STOP GROUP_REPLICATION execution), election gets held between M4 and M5 using member weight based algorithm.
This feature was backported to 5.7.20. You can read further details about this backported feature by checking Member weight for automatic primary election developer post.
Disallow writes after leaving the group
The Disallow writes after leaving the group is a mechanism to prevent a server from being updated after stopping Group Replication.
The purpose is to ensure that offline members (in OFFLINE or ERROR state) are not accidentally updated. Otherwise, its data might change thus causing problems when joining the server to the group (due to an artificial split-brain).
This feature was backported to 5.7.20. Please check Disallow writes after leaving the group developer posts, for details.
Transaction savepoint support
The Transaction savepoint support enabling the use of transaction savepoints when write-set extraction is enabled was backported.
This feature was backported to 5.7.19. Please check group-replication-support-savepointdeveloper posts, for details.
Download the new MySQL 5.7.20 GA release and let us know your feedback and doubt, through comment on this blog or through MySQL bugs.