Search code examples
innodb

why innodb primary selection prioritize lower version of server?


I am reading MySQL document about InnoDB single-primary mode. It claims as follows that the first factor of selecting the next primary is the version of the server. The weight and UUID comes after the version. So what is the reason for this? My guess is that a higher version primary server if used as primary node, can have features that lower version nodes can hardly accept, but what's that?

The first factor considered is which member or members are running the lowest MySQL Server version. If all group members are running MySQL 8.0.17 or higher, members are first ordered by the patch version of their release. If any members are running MySQL Server 5.7 or MySQL 8.0.16 or lower, members are first ordered by the major version of their release, and the patch version is ignored.


Solution

  • Backward compatibility is usually built into any release. The Master is somewhat in charge. So, it is reasonably safe for a Slave to be running a "newer" version.

    Without this convention, it is hard to release incompatible features -- the Master would need to negotiate with the Slaves to decide what old protocol to use.