Bug #103766 please document external (network) protocol used by group replication
Submitted: 21 May 2021 11:35 Modified: 21 May 2021 12:08
Reporter: Simon Mudd (OCA) Email Updates:
Status: Verified Impact on me:
None 
Category:MySQL Server: Documentation Severity:S4 (Feature request)
Version:8.0 OS:Any
Assigned to: CPU Architecture:Any
Tags: protocol, specification

[21 May 2021 11:35] Simon Mudd
Description:
Group repelication / innodb cluster is becoming used more frequently due to its handling of HA and potentially faster failovers should a member fail.

Group replication uses a special protocol and messages between group members to achieve that behaviour. This is different to the traditional asynchronous replication flow that has been used in the past and is used by many people.

However, there's no documentation that explains the flow over the network to make the GR cluster work as a whole. Documenting that would be good as it potentially allows users to develop plugins that might talk to the group directly for a variety of other uses (monittoring the group).

While the information on what happens now can be inferred from the open source code in the public mysql git repo it's not the same as specifiying how things SHOULD work and how behaviour should happen under unexpected circumstances.

It can also be tempting to change the protocol without notice that might cause incompatibilities.  If the interfaces/protocol is documented more thought is likely to be made if changes are needed (and this happens) and this can be done in a way which prevents unexpected issues.

So please consider documenting the protocol / flows

How to repeat:
I'm not aware of any explicit GR protocol documentation.
I see from https://dev.mysql.com/doc/refman/8.0/en/group-replication-options.html#sysvar_group_replic... an indication that there's GCS and XCOM and am unclear what the differences are but these seem to be related to communication between GR members.

Suggested fix:
Consider documenting the protocol / flows so that unexpected changes won't happen or break existing systems and should changes be required it's clear how any system interacting with the other GR members should behave.
[21 May 2021 11:40] Simon Mudd
Documentation would involve:
* overview
* flows of setting up a GR cluster
* adding / removing members (if different)
* flows of tearing one down
* messages and formats used
[21 May 2021 12:08] MySQL Verification Team
Hello Simon,

Thank you for the documentation enhancement request.

regards,
Umesh
[16 Mar 2022 11:36] Margaret Fisher
Posted by developer:
 
Thank you for the suggestion! This is a good idea which we have considered but unfortunately it is not a resource priority for us, so I'll close it off so that the bug doesn't sit around. But thanks very much for taking the time to think about this.