sysown/proxysql

Implement auto tuning of mysql-server_version

renecannao opened this issue · 0 comments

  • A clear description of the issue

As part of MySQL protocol, the server advertises its version during the initial packet handshake.
In ProxySQL this is controlled by mysql-server_version , and if this is not configured correctly it can create a lot of misbehaviors in several application drivers.
This is still a source of confusion as many users are not aware of this variable.

When ProxySQL is executed in bootstrap mode against a Group Replication / InnoDB Cluster , mysql-server_version is configured automatically.

We can implement an even more generic feature:

  • when Monitor performs ping/connect check, record the version advertised by the backend servers
  • if all the backend servers run the same version, automatically update mysql-server_version to match it
  • the above behavior must be controlled by a new global variable. Multiple values are possible. For example:
    • 0 : feature disabled
    • 1 : update mysql-server_version if all the backends have the same version
    • 2 : update mysql-server_version if the majority (+50%) of the backends have the same version

Because servers can be added and removed at all time, proxysql should re-evaluate mysql-server_version at intervals multiple of mysql-monitor_connect_interval

  • ProxySQL version

All till latest release 2.6.2

  • OS version

All