v2.4.0
v2.4.0 Release notes
Release date: 2022-05-11
This is a major release for ProxySQL 2.x series containing several important features, fixes and enhancements.
Compared to ProxySQL 2.3.2 , ProxySQL 2.4.0 introduces the following changes:
New features and enhancements
Major
-
Session variable 'transaction_isolation' now doesn't disable multiplexing #3664 .
-
Introduced new variable
mysql-unshun_algorithm
. It controls if the automatic unshunning of a host is performed just on the hostgroup where traffic is sent, or on all hostgroups where the host exists #3649 . -
Added support for command
COM_RESET_CONNECTION
for frontend connections #3645 . -
Improved startup time when MySQL worker threads are listening to multiple sockets #3700 .
-
Added
pidfile
to be configurable through config file #3707 . -
The implementation of the parsing of queries and the query digests was extensively improved: #3680
- Multiple fixes for query digests parsing for more homogeneous digest generation.
- Added new configuration variable
mysql-query_digests_groups_grouping_limit
allowing to grouping over digests grouped bymysql-query_digests_grouping_limit
, for example for INSERT statements that inserts multiple rows. - Added new configuration variable
mysql-query_digests_keep_comment
: when enabled, comments of the kind/* */
are not stripped from the query digest.
-
Several improvements on how session variables are parsed and processed, including an improved handling of
SQL_LOG_BIN
and tracking of the following variables: #3702 and #3754- aurora_read_replica_read_committed
- group_replication_consistency
- lc_messages
- lc_time_names
- max_execution_time
- optimizer_prune_level
- optimizer_search_depth
- query_cache_type
- sort_buffer_size
- timestamp
- tmp_table_size
-
Multiple ProxySQL Cluster improvements #3305:
- Each ProxySQL node now must have an UUID, that can be either:
- configured in the configuration file
- supplied by command line using option
-U
(or-uuid
), or - automatically generated
- Cluster nodes register themselves when connecting to another Cluster node using their own UUID
- Because nodes register themselves when connecting to another node, core ProxySQL Cluster nodes are now aware of other client ProxySQL nodes. Such information is accessible via
stats_proxysql_servers_clients_status
table - To avoid race conditions and verify correctness, the checksums of the configuration is checked before and after the synchronization itself
- Each ProxySQL node now must have an UUID, that can be either:
-
Added support for
SELECT current_user()
andSELECT user()
in Admin #3725 . -
Added Clang build support #3775
-
Added new distros for builds and packages:
-
Removed variables
mysql-client_multi_statements
andmysql-client_found_rows
, as they were already deprecated #3793 -
Added new config variable
mysql-auto_increment_delay_multiplex_timeout_ms
that allows to specify a timeout, after whichmysql-auto_increment_delay_multiplex
is invalidated, thus re-enabling multiplexing #3839 . -
Added regex support for
spiffe_id
user attribute #3820 . -
Added tracking of protocol flag
NO_BACKSLASH_ESCAPES
in case it is changed #3854 -
Added several new prometheus metrics:
-
Added new variable
mysql-monitor_replication_lag_group_by_host
. When enabled, MySQL Monitor will perform only 1 replication lag check per server even if present in multiple hostgroups #3867
Minor
- Improved the processing of table
stats_history.history_mysql_status_variables
for better scalability and reduced storage requirement #3674 . - Field
last_updated
from tablestats_mysql_client_host_cache
is now reported in seconds #3735 . - After ProxySQL packages generation copy created ProxySQL binaries sha1 files into 'binaries' directory #3755 .
- Added new
debug_filters
table in Debug build. This table can be used to filter specific information from error log whendebug_levels
is enabled . - Added extra logging when no servers are available in a hostgroup #3806 .
- Version check now limits fetched output to '32' bytes. See commit ccf6d9e .
- Added stats capabilities for log messages. Relevant for future logging messaging improvement #3824 .
- Improved error report for RESTAPI scripts #3838 .
- Various performance improvements
Bug Fixes
Major
- If
fast_forward
was enabled for a user and during authentication a large packet was received, the authentication itself could fail #3658 - Under certain high load conditions multiplexing was incorrectly disabled #3658
- When
mysql-log_mysql_warnings_enabled
was enabled, MySQL warnings generated from a query were incorrectly returned as the resultset of the next executed query #3652 . - Fixed a stall in MySQL_Thread due to an immediate return of function
mysql_real_query_start()
#3652 . - When
mysql-query_digests=false
, someUSE
query could cause proxysql to crash #3657 . - When a client issues
COM_CHANGE_USER
, variableuser_attributes
was not being preserved #3645 . - Fixed crashes due to invalid handling of big packets for Admin #3710 .
wsrep_sync_wait
was not check on several backend versions, including PXC 8.0 #3727 .- Fixed conflict between
fast_forward
andCLIENT_DEPRECATE_EOF
when frontend and backend connections didn't have the same flag #3757. create_new_connection
annotation could not work as intended if a connection was retrieved from thread-local connection pool #3757 .- When a client issued a
COM_CHANGE_USER
command, 'Auth Method Switch' during handshake was not being properly handled. This affected libmysqlclient #3504. - Fixed several invalid query interceptions for prepared statements , specifically: #3826
SELECT CONNECTION_ID()
SELECT LAST_INSERT_ID()
SELECT @@IDENTIFY
- Fixed monitoring not working properly for AWS aurora auto-discovered servers #3797 .
- If many backend connections were used, some idle backend connections were not getting pinged #3836 .
- Fixed multiple deadlocks regarding ProxySQL Cluster nodes synchronization , and the interaction between ProxySQL Cluster and Admin #3305 and #3848
- Added proper handling of signal
EINTR
affecting scripts launched by the RESTAPI #3838 . - Fixed several issues reported by CodeQL #3815 .
- Fixed several invalid memory usage.
Minor
- Fixed compilation inside rootless containers #3686.
- Fixed
mysql-ssl_p2s_capath
typo in 'refresh_variables' #3834. - Fixed crashes when 'gtid_executed' reported by
proxysql_mysqlbinlog
reader is empty #3817 . - To track GTID , ProxySQL was incorrectly trying to connect also to server in
OFFLINE_HARD
status #3817 . - Fixed duplicated counting of MySQL errors for client connections #3856 .
SHA256s:
7c889e19979ffdee2c5825a6df054483c6337b3d5402fc2ca9c7d0b999db97f5 proxysql-2.4.0-1-almalinux8-clang.x86_64.rpm
8293277bbb7398050747d8c6c54dca6d336c2ebd9f8c75ed208cc05087a6bba3 proxysql-2.4.0-1-almalinux8.aarch64.rpm
382ff92354747fcc4caae50ee815f9586b1280a134057c7bcb81a4cd9a803d5c proxysql-2.4.0-1-almalinux8.x86_64.rpm
3792991f6aac57be9b5fb993931bd886482111d74fa25761d130703ef662835d proxysql-2.4.0-1-centos6.x86_64.rpm
6394245991c8ab564a044dd9ee3dfde3df335aa8d708ad25e7375da6631e7aa1 proxysql-2.4.0-1-centos7.aarch64.rpm
d04cd74b4c7b5485594aa441974937aeb9cbce55ce59828172ffc8d10d104654 proxysql-2.4.0-1-centos7.x86_64.rpm
354ed60547607259cc4ce7b5e110efcf4640dd1bab09f53d69d129a0fb458c40 proxysql-2.4.0-1-centos8-clang.x86_64.rpm
e763516bc5b6abff28dd1963a2b8b9b1308e26e9d8a3622811815b239ad609cc proxysql-2.4.0-1-centos8.aarch64.rpm
a41134ed3458101211c01a16fcefcf953c78b8e3ff837c132236f30b09096d9f proxysql-2.4.0-1-centos8.x86_64.rpm
d677752287eab6d2be24965a678efe64734e69c16944e5a39d317a2bc810dfbb proxysql-2.4.0-1-dbg-almalinux8.x86_64.rpm
dcdd5def0a991c49754ac3a42cf34a9fa37c101fe30944a5111ee4fb10f1deea proxysql-2.4.0-1-dbg-centos6.x86_64.rpm
ad8f8229d62749d4eca07b3d7934fb351f47e523680a9c440c015df7303f2ac2 proxysql-2.4.0-1-dbg-centos7.x86_64.rpm
be8ffcc32924673e5188bda287b2d4dc6d06b1463ae877bc9ecb17b16da213ee proxysql-2.4.0-1-dbg-centos8.x86_64.rpm
92f522893e4f9af52b8aebb7496a4e37306b8169a77e568950e8746fdb73c3e5 proxysql-2.4.0-1-dbg-fedora27.x86_64.rpm
cd1c77b65801a81f3c4ef3e1f42aaaf8645a76e8125696b06906a4c50ccecc8e proxysql-2.4.0-1-dbg-fedora28.x86_64.rpm
5226ef24c1c39c0fd710b51f1bb105fd4565aa56ec769b66f3ca63503166aac4 proxysql-2.4.0-1-dbg-fedora33.x86_64.rpm
3e9502dfcf102d24dddf5384ecaa4e4402f9b424e3aee44d2be79de93f69ec3d proxysql-2.4.0-1-dbg-fedora34.x86_64.rpm
31932ca4c9f6df8c363e0c54c838687986c6502735cac712f820d59310439af3 proxysql-2.4.0-1-dbg-opensuse15.x86_64.rpm
0e53b07336ca266e1bbf25ed37626d07dc3023bbaeb8e5718a1439ca36bbcdc4 proxysql-2.4.0-1-fedora27.x86_64.rpm
ea62bcb5a356253346cfc38fbf341de17e5f04a43e2e5089ff8f423e34050e5c proxysql-2.4.0-1-fedora28.x86_64.rpm
88c4fdd6eb029a5f722650543508fc673e10fbce09e524a524a92e2886fe53af proxysql-2.4.0-1-fedora33.aarch64.rpm
ecd0c75724b73da835c226c388d46465e1fcfa5f19994014b26d567c2749352c proxysql-2.4.0-1-fedora33.x86_64.rpm
15c67b31f10f5c7d41ac2494d6d189111710db7653c10a020b026d790fdf4436 proxysql-2.4.0-1-fedora34-clang.x86_64.rpm
e045ddb2c9edbd016af5c6e2350ad3359b56d2a3bf29a4efa5febcd381a72119 proxysql-2.4.0-1-fedora34.aarch64.rpm
815fd02dbf7823f187fb47fde3836f4b0c35bbf13db94d793009597c196eddf6 proxysql-2.4.0-1-fedora34.x86_64.rpm
63c10556787ac98b9cc95ddab0a838c7da2dcef4e3e625c75e10804189622860 proxysql-2.4.0-1-opensuse15-clang.x86_64.rpm
e26e78ba0e6afc2f55fcf40c4445712bcbdaf497606e83ec5062e664b3904571 proxysql-2.4.0-1-opensuse15.aarch64.rpm
2caab0ee71ba9bd69f55565c4d81a7ae26e8507b76954535bf14e8a7d654170c proxysql-2.4.0-1-opensuse15.x86_64.rpm
c19fcca46819a1e8bfea9a7f9e69519426b828355427def69aab0d756d84b3aa proxysql_2.4.0-dbg-debian10_amd64.deb
af447c74f1da08d2a54eeb04c2ad343f505b122d50bf050d67debedb6bae9b55 proxysql_2.4.0-dbg-debian11_amd64.deb
94f8139e1524a85e73266040830f79b63332e79b7a5bb3c04f2a218136e37d63 proxysql_2.4.0-dbg-debian8_amd64.deb
8f58ceb242938966844c5a728ff9de8d1f26ee182289c9f1f30aea5c6c8a305b proxysql_2.4.0-dbg-debian9_amd64.deb
c93a9dbe7c0bf8a57559b8c3564adf82ad3ca3854ea606f3e66e328898b26591 proxysql_2.4.0-dbg-ubuntu14_amd64.deb
95baf1b8759e7b71bd601ee92af5f10aff5820f3cef9074c8ab1735d82729360 proxysql_2.4.0-dbg-ubuntu16_amd64.deb
83284e61f21176f22f7de8b44b73e223b311a66bd0366604f8a85a7507219e17 proxysql_2.4.0-dbg-ubuntu18_amd64.deb
70424ebae6881ccae61786837a33bcd531d102de550a099d09ed02926a156147 proxysql_2.4.0-dbg-ubuntu20_amd64.deb
997a8cdbed2c306d476955bfcb7ad0c6a0bd3d2a19958d66f33d79c681fa3344 proxysql_2.4.0-dbg-ubuntu22_amd64.deb
3141e7e920c8be8bc0224668934201839c3de5a680ac6d1d0027d85fa17acde9 proxysql_2.4.0-debian10_amd64.deb
50494ed564367183ab9daea711e66e7520e53f6e4eb04f24742cc682017e2a48 proxysql_2.4.0-debian10_arm64.deb
6de0bf08a390409846866f0779a47f1ac6076c7912fe2b5f158dbfc3ce9815ad proxysql_2.4.0-debian11-clang_amd64.deb
d0fdb91ad915beffcf0e9cadac0d541f32a75ec6863ab1aad790cce417ec955e proxysql_2.4.0-debian11_amd64.deb
5c0e5a010e01dc3e09d4e4ac8bbdb2388be4bb1a443eff98b64b99c305b6b005 proxysql_2.4.0-debian11_arm64.deb
4b7ae3b7087b3a0b22702fa67ea9856db6eada78b004dd7f42046ed0254cebbe proxysql_2.4.0-debian8_amd64.deb
18f1e0f33e6e0eb95f9e6a3504839eb68c6bb543934c2c26920a2d46c208d4fc proxysql_2.4.0-debian9_amd64.deb
6a1cca37d2124adaaa53a3b324af612b4b65c164c31c1d70636ecf01040fe953 proxysql_2.4.0-debian9_arm64.deb
3c53a5ef32e9091eeeb4b99c9803d3fa5ae83a22581f3b40e31abc1b431321e5 proxysql_2.4.0-ubuntu14_amd64.deb
d560bc0cecaab5513789b0b5561c56d78803ca1d1ecc2cfd8d46ebd3def3763f proxysql_2.4.0-ubuntu16_amd64.deb
a9a1675725593b75477f8704a7d921735762db865e8c9978e83a8ef5b22e91a9 proxysql_2.4.0-ubuntu16_arm64.deb
ea2a0fff1e376e4d2b783ebac81b3df70e4ed8a298bb62f2cceae1e9ecf3401d proxysql_2.4.0-ubuntu18_amd64.deb
6b04d2bbcd44385db03856cf3a80a63e59b71d284430e974dfb0e9f9e487e015 proxysql_2.4.0-ubuntu18_arm64.deb
a8a3f6aa8085b33a474c1e9c9c65e26d79256f0f9ef337c46fd2db20e2493589 proxysql_2.4.0-ubuntu20-clang_amd64.deb
61274832e1cfdbcdcd742df2be00e78156c5baaab84ce9cc370ef531447ab120 proxysql_2.4.0-ubuntu20_amd64.deb
085bfb5f5302fa84533ae35c07ec953a168baa5a1d9b87b3cdce2b7741967cb5 proxysql_2.4.0-ubuntu20_arm64.deb
23d3e915e7f26d4645b610a1807823a28ffe8d99c233bcb3d61567be77660f3c proxysql_2.4.0-ubuntu22-clang_amd64.deb
cc61a1988d380addd419b079521feb608d17e809caee6738da242e1f72f936f4 proxysql_2.4.0-ubuntu22_amd64.deb
e798eda135bc1130a62645234ae20d5b6c1840a4ca9c15ed78365550726cfd61 proxysql_2.4.0-ubuntu22_arm64.deb