sysown / proxysql

High-performance MySQL proxy with a GPL license.
http://www.proxysql.com
GNU General Public License v3.0
6.05k stars 983 forks source link

Feature request: Super fast forward #4708

Open michaeldg opened 1 month ago

michaeldg commented 1 month ago

Hello,

It wouild be nice to be able to easily use ProxySQL as a replacement of haproxy, making use of the monitoring features present in ProxySQL. Besides the monitoring configuration, servers and host group configuration it could work without any further configuration (no users, no default hostgroups, no query rules, no variables).

Haproxy (for MySQL) is a L4 load balancer. It does not have any L7 MySQL protocol features. Thus, the feature request for ProxySQL is to have 'Super fast forward' listeners. If super fast forward is connected to, the incoming network traffic is directly forwarded to the host group configured (taking in mind the weight configuration of the underlying servers).

This way, ProxySQL galeramon and other monitoring modules would deliver value, but no confiugration is needed and 0% risk of application incompatibility.

This feature would for example bring value to switch over asynchronous replication hostgroups by reconfiguring read_only on the backend servers.

Thank you, Michael

MichalisDBA commented 1 month ago

@michaeldg There is a variable in mysql_users called fast_forward – if set it bypasses the query processing layer (rewriting, caching) and passes through the query directly as is to the backend server.

You only have to setup users and hodstgroups just like Haproxy you configure front and back end listeners and servers.

michaeldg commented 1 month ago

I am aware of the fast forward feature. The fast forward feature still authenticates the user inside ProxySQL, determines the host group based on that authentication, and then fast forwards the user to the right hostgroup.

My feature request is super fast forward: Based on a listening port, proxysql forwards the users to a host group. So authentication occurs after the super fast forwarding by the mysql server that is chosen as a backend.