Release date: 2021-01-13
Compared to v2.0.15, ProxySQL v2.1.0 introduces the following features, enhancements and bug fixes:
New features
- Implemented a built in Prometheus exporter conforming to Prometheus best practices and standards.
- ProxySQL now includes an endpoint exposing metrics in Prometheus format. For instructions on how to enable and
configure this feature, please refer to the official documentation. - Added support to exposing Prometheus metrics through the admin interface via
SHOW PROMETHEUS METRICS
command. - A Docker compose file which launches Prometheus, Grafana and deploys our reference dashboards is available here
- ProxySQL now includes an endpoint exposing metrics in Prometheus format. For instructions on how to enable and
- Added code that prevents caching of routing metadata for
COM_STMT_EXECUTE
. - Added support for FRs 2660, 2661, 2662, 2663 and 1377. These changes allow
more uniform query digests, grouping different queries into an consistent format. - ProxySQL cluster changes:
- Added SSL support for ProxySQL Cluster inter-cluster communication #2748.
- ProxySQL Cluster now verifies peers version and pairs with same ProxySQL version only to facilitate upgrades and prevent inconsistancies. #2750
- Extended ProxySQL Cluster feature set synchronization to include additional modules, specifically:
mysql_galera_hostgroups
,group_replication_hostgroups
andmysql_aws_aurora_hostgroups
. #2687 - Improved logging in cluster synchronization to report invalid sync states.
- ProxySQL Cluster has also been extended to synchronize instance variables:
mysql_variables
andadmin_variables
. #2856
- Support for the SQLite3 plugin, this opens the road for encryption at rest as well as other features. #2821
- Added support for Oracle
mysqlsh
. #2854 - Introduced several minor
SHUTDOWN
command changes.- Mapped the command
PROXYSQL SHUTDOWN
toPROXYSQL KILL
, performing a very fast shutdown. - Legacy
PROXYSQL SHUTDOWN
is now implemented asPROXYSQL SHUTDOWN SLOW
.
- Mapped the command
- Introduced new column
attributes
to themysql_users
(#3083) andmysql_query_rules
(#3088) tables. - Added initial support for
CLIENT_DEPRECATE_EOF
. Currently ProxySQL has support forCLIENT_DEPRECATE_EOF
for text protocol only, and excluding prepared statements. - ProxySQL now honors
wsrep_sst_donor_rejects_queries
so DONOR nodes no longer need to be set toOFFLINE
during a SST. For implementation details about this please refer to the official documentation #3227 #3227 - Introduced new
WebInterfacePlugin
to support theWebInterface
component of the ProxySQL Enterprise Edition extension.
Bug fixes
- Fixed client connection stall when no backends are available. #3133
- Galera nodes permanently dropped from
runtime_mysql_servers
whenwriter_is_also_reader=2
. #3187- Readers that were only part of the
reader_hostgroup
, due to, for example, havingread_only
flag equal 1,
were being permanently dropped from theruntime_mysql_servers
table.
- Readers that were only part of the
- Fixed a bug where ProxySQL would create connections exceeding the defined
max_connections
. #2619- ProxySQL now enforces
CLIENT_MULTI_RESULTS
for client connections specifyingCLIENT_MULTI_STATEMENTS
as per the MySQL specification.
- ProxySQL now enforces
- Fixed error log and errors reported to clients when several statements fails #3177
- Fix several memory leaks detected by valgrind: #3204
- Fixed memory leak in
save_mysql_servers_runtime_to_database
due to a resultset not being freed. - Updated
mariadb_lib.c.patch
to fix a memory leak patch formysql_close_no_command
.
- Fixed memory leak in
- Fixed a bug preventing ProxySQL Native Galera modules from operating after a
PROXYSQL RESTART
statement is issued via ProxySQL Admin. #2330 - Connections not being cleaned up in case of
match_tracked_options
were always failing, this has been fixed. #3201 - Galera nodes were wrongly purged after being set to
OFFLINE HARD
i.e. placed in theoffline_hostgroup
. #3216- If due to a previous event the node was placed in the
offline_hostgroup
, and never purged from it, a later event may try to place it
in theoffline_hostgroup
again. The second placement wouldnt overwrite it`s status, creating the possibility of being completely purged from the tables.
- If due to a previous event the node was placed in the
- Servers wrongly used as reader for Galera cluster with
writer_is_also_reader=2
. #3219- Due to selective cleanup of readers for
writer_is_also_reader=2
, in case of no available backups writers, a server could unexpectedly
end up in thereader_hostgroup
.
- Due to selective cleanup of readers for
Code improvements / Refactoring
- Refactored
MySQL_Thread::run
. Method has been split into multiple functions to improve readability. Relevant commits: #1, #2, #3,#4, #5, #6. - Removed code refactored into the new
MySQL_Thread.status_variables
array implementation. - Refactored the session handler
MySQL_Session::handler()
, split code into serveral much more manageable sections. #2738 & #3110 - Refactored MySQL_Connection setter/getter functions functions for
status_flags
. #2717
MD5s:
839938ae5160babdcd888ae3db7ecce4 proxysql-2.1.0-1-centos67.x86_64.rpm
015bf47c1748c2db162a544e76c3a001 proxysql-2.1.0-1-centos7.aarch64.rpm
dea226748da710abf0682045d24ce79a proxysql-2.1.0-1-centos7.x86_64.rpm
48a2a831009f17e0a650bd5d7061e879 proxysql-2.1.0-1-centos8.aarch64.rpm
ba372223b0f86890e590312bc92f1ba7 proxysql-2.1.0-1-centos8.x86_64.rpm
210aa6f2f1152e61ff0730dc8c785ae4 proxysql-2.1.0-1-dbg-centos67.x86_64.rpm
c9f378f5c7edf48ec28ffdaaa1629610 proxysql-2.1.0-1-dbg-centos7.x86_64.rpm
f9db4254bf282bfaf9e7a84c2af0cbfe proxysql-2.1.0-1-dbg-centos8.x86_64.rpm
7c1bfb0865bfadd1648334e9d950cd2f proxysql-2.1.0-1-dbg-fedora24.x86_64.rpm
01450aac3a64b8f1a19af9a5099426bf proxysql-2.1.0-1-dbg-fedora27.x86_64.rpm
f13923bb46f4b4a7dc6ff78c216c4805 proxysql-2.1.0-1-dbg-fedora28.x86_64.rpm
1f48d2347a86481f5bde704e858ffa7a proxysql-2.1.0-1-fedora24.x86_64.rpm
0d3485cc050f800b1a52d78a21af5f94 proxysql-2.1.0-1-fedora27.x86_64.rpm
85d0c5ab910629881845aab57b36d357 proxysql-2.1.0-1-fedora28.x86_64.rpm
ba4388064009daf0af05881e63dcb95b proxysql_2.1.0-dbg-debian10_amd64.deb
1e2c2c68af593c66ca917560a17cec7b proxysql_2.1.0-dbg-debian8_amd64.deb
904378ce40d89bb6d487d1d165d1fabf proxysql_2.1.0-dbg-debian9_amd64.deb
043417e4c122a3d809e76c7ed5248c8e proxysql_2.1.0-dbg-ubuntu14_amd64.deb
4943b7f69d591c929990797a709d4a43 proxysql_2.1.0-dbg-ubuntu16_amd64.deb
03ff21ed14d91cbfe082013ff1bbc1dc proxysql_2.1.0-dbg-ubuntu18_amd64.deb
5e524f01339c956dba1d5ab2ab8b0d55 proxysql_2.1.0-dbg-ubuntu20_amd64.deb
8a32c2d55ad4dd58e167b32bf37ff0fa proxysql_2.1.0-debian10_amd64.deb
71edc4aaafac98608047b78bb37655ec proxysql_2.1.0-debian10_arm64.deb
770d55266f73ced4de4dcf9ae7b2a26d proxysql_2.1.0-debian8_amd64.deb
a241d42467e83c89f8235aa30f1c3c0d proxysql_2.1.0-debian9_amd64.deb
d15968490e0b9dbc4d89b6a898d21040 proxysql_2.1.0-debian9_arm64.deb
297f1e54f21e0a65556708617fe314a1 proxysql_2.1.0-ubuntu14_amd64.deb
08ffd2c5a4825b35b0f551af3b524aa3 proxysql_2.1.0-ubuntu16_amd64.deb
91cb616e89e97ea120b80458535b5f79 proxysql_2.1.0-ubuntu18_amd64.deb
056f94d73b74c1086c02b98491f87a97 proxysql_2.1.0-ubuntu18_arm64.deb
c4986a41c745191aa779bf6cce112156 proxysql_2.1.0-ubuntu20_amd64.deb
a82f2e5c1b03f58394645ef106b63640 proxysql_2.1.0-ubuntu20_arm64.deb
SHA1s:
02ce4ab285d10151d64a4f9a2cf8e84dee53da2a proxysql-2.1.0-1-centos67.x86_64.rpm
0b507f29f9b078c6a5e0b568347ee21a83dbce93 proxysql-2.1.0-1-centos7.aarch64.rpm
b373a887b9aac943d00daa96d3f7d4059cd2dacf proxysql-2.1.0-1-centos7.x86_64.rpm
17469a898a89a79be2f9d280a2ff1f3c5c0b1304 proxysql-2.1.0-1-centos8.aarch64.rpm
cb847610bf48311e082e255b34b8dadbe500f5e4 proxysql-2.1.0-1-centos8.x86_64.rpm
1bbe87aab32e9d0b63fa03c020538e6bd1bb5c65 proxysql-2.1.0-1-dbg-centos67.x86_64.rpm
f32d10d8af93b0ae0637939c794253641051a390 proxysql-2.1.0-1-dbg-centos7.x86_64.rpm
d074321647c4ab36cf931b3e06613cd95ebe5949 proxysql-2.1.0-1-dbg-centos8.x86_64.rpm
606f83cd6d6ed96120c225dfd24f62630cf6b9b0 proxysql-2.1.0-1-dbg-fedora24.x86_64.rpm
0eb610889ad53a4e91474abd21fce0ebfcbc4396 proxysql-2.1.0-1-dbg-fedora27.x86_64.rpm
43f8d3331ff969d6d149ad8a476b64a694a1aec2 proxysql-2.1.0-1-dbg-fedora28.x86_64.rpm
dd5b5a7cd0c161fb3d65db2635efb73b4e72e96f proxysql-2.1.0-1-fedora24.x86_64.rpm
b270e37ce1a13296334c5a78c65fb72e65ca8753 proxysql-2.1.0-1-fedora27.x86_64.rpm
62402d920c4d7ee6cd6d42de9006cbc8abebc3f5 proxysql-2.1.0-1-fedora28.x86_64.rpm
092abac36b80fe83b4b3462113ed868131626228 proxysql_2.1.0-dbg-debian10_amd64.deb
93d1a976070e0451a7d3065cf233367337619723 proxysql_2.1.0-dbg-debian8_amd64.deb
c74fa7c4f5443f1706e35c8c60baec594f618a21 proxysql_2.1.0-dbg-debian9_amd64.deb
bed95095fee851a0bba8a91867d19531a6119ac4 proxysql_2.1.0-dbg-ubuntu14_amd64.deb
a451f83b6c155755b9d3099ca0c44bc37f42e43d proxysql_2.1.0-dbg-ubuntu16_amd64.deb
e0d1decd48fb2801d727ebd4054345e31bc266a9 proxysql_2.1.0-dbg-ubuntu18_amd64.deb
e4379da4e1db8e9c832533dcf5d17f8d278d809c proxysql_2.1.0-dbg-ubuntu20_amd64.deb
541dd55059308cb04ac56722f27db635ac16d047 proxysql_2.1.0-debian10_amd64.deb
def81ff825e1aed3d9c78f9151cacfdd80a5d024 proxysql_2.1.0-debian10_arm64.deb
bc094c8e133c763f1f49f1961fda1d975a9225e0 proxysql_2.1.0-debian8_amd64.deb
7316dfa7354554cb6d62d0c09796610ef92df619 proxysql_2.1.0-debian9_amd64.deb
8ebf10e5e3239578128d640823af9c34cff7ef6d proxysql_2.1.0-debian9_arm64.deb
4a84d89fd5eec3dba7edec79454fd397b6b66620 proxysql_2.1.0-ubuntu14_amd64.deb
1c2cbd394a1ed4d9795c04bf282c7e05b95b7a0c proxysql_2.1.0-ubuntu16_amd64.deb
da41701bca05b584032095c85d2f49ec34825cc0 proxysql_2.1.0-ubuntu18_amd64.deb
0ef06e2cf839bbdfcd44eb22220a1024cde28e9a proxysql_2.1.0-ubuntu18_arm64.deb
36be5db1496d882eb5e2475a535b2070679d4beb proxysql_2.1.0-ubuntu20_amd64.deb
aa3979bbb0cb0526aac259d18884d1d615670889 proxysql_2.1.0-ubuntu20_arm64.deb
SHA256s:
e520b1622abb2d62f5f152624aaff241ae96607d4f74bc919ba68b1b3a83d4cf proxysql-2.1.0-1-centos67.x86_64.rpm
bcfba089b452a9fabac2a725e9348ccaebce001fc04eb74beb00c7e91a84cf28 proxysql-2.1.0-1-centos7.aarch64.rpm
a0af599367bca6cd7ddfe818a3193b180352a41a3887419100d582478e3557bf proxysql-2.1.0-1-centos7.x86_64.rpm
690fed18ebabed9ce4a98e73e9a75c0af6066c45667cf548af7cd3a44c796f30 proxysql-2.1.0-1-centos8.aarch64.rpm
430ef5a5f11a80d7d7373397c21a1e23209722aed79e5863dc1514e8d53901eb proxysql-2.1.0-1-centos8.x86_64.rpm
f6aa4b64b1d4bd836c0bb961f6281e37bd3fa721c615d50ef22650d2f7a6d0b9 proxysql-2.1.0-1-dbg-centos67.x86_64.rpm
1cad09c6b193deaf2dc8790c36497d9226cc9691aaec9c49c3a0c44c5fd46dc1 proxysql-2.1.0-1-dbg-centos7.x86_64.rpm
7bf3c73b5cca1d38dcac89ede4643d5880953ecac719ab1830104fdee9229273 proxysql-2.1.0-1-dbg-centos8.x86_64.rpm
0a9d9c5095130dfda6c4ee46943cf7c916bbf27371b69173b7e155d7f77133b9 proxysql-2.1.0-1-dbg-fedora24.x86_64.rpm
f93c79d59e677f19efcad4de0c7e1d3c0fdb5eefd31c30377655c39a3cc89fe9 proxysql-2.1.0-1-dbg-fedora27.x86_64.rpm
60073a26ddaaa21019c6500054b3f26771fbf6e9ac84665b5498929f970e57cf proxysql-2.1.0-1-dbg-fedora28.x86_64.rpm
69f4fedb135d408b760e24bc47ea2b47dda5e1f99e8ee73f087c6c2bc94d0d1b proxysql-2.1.0-1-fedora24.x86_64.rpm
97085de97a337a5c2c2f2576f88c5f99e54f8b9841cd860a84e392a98473841e proxysql-2.1.0-1-fedora27.x86_64.rpm
e0d7aa4e937c50ddf0c582e74c572641baeebb87c75759a521ebd98429c45f2c proxysql-2.1.0-1-fedora28.x86_64.rpm
49c19929f6d5ac31ac9d6bfe0f5e5fa890d5bd216b8150f487d08e2e57afefa0 proxysql_2.1.0-dbg-debian10_amd64.deb
5e6fe10f5224aeb3edca30bcc42f77625eef90a7d0b38c0fa5996b9b7e6209d4 proxysql_2.1.0-dbg-debian8_amd64.deb
229983a93f0a967bf54e2671397efecc6ece0ee76e1f6e1b09011658592dab06 proxysql_2.1.0-dbg-debian9_amd64.deb
c1a2402e006802867ac56fa5a6a8595f16241de639b09e1f0c47f541fba3c5cd proxysql_2.1.0-dbg-ubuntu14_amd64.deb
8c7a66bf6442cee5166e8b18eae7ee2c2b7a7c2212825eea5e8bd28a517b8d7a proxysql_2.1.0-dbg-ubuntu16_amd64.deb
6d02ad456ac7f946f97b68d4cd99661da11acbbf4c676bf878ed9282744c3b23 proxysql_2.1.0-dbg-ubuntu18_amd64.deb
54eeb7159d70a19d565cc0620ff04a2228f732140081f75f67156048a35abce0 proxysql_2.1.0-dbg-ubuntu20_amd64.deb
c6893e6c0ea6e9320728bc3ca362af1e737205e50608a8dc49a5dae7b615c485 proxysql_2.1.0-debian10_amd64.deb
7c667a8d0e973abdd7848b69b85dee02478e9701d0b8a036db83c2321b5c7466 proxysql_2.1.0-debian10_arm64.deb
68999638c2764b2d564bb4e4bd1e327fab6d362b573c9bc124ae688bcc31d823 proxysql_2.1.0-debian8_amd64.deb
0c56884744d7ab58b5a313a65eaaa58b01fe7741b305ada1f6e6342442661294 proxysql_2.1.0-debian9_amd64.deb
93c1975d0fb2c6f1c90953f6459ca17a2021fbc2a9939d56102cfce5c9ca94e5 proxysql_2.1.0-debian9_arm64.deb
595a9f25e44db0725954b0b6f4e53620df00b28e69cdedc54dca4d47eada35a0 proxysql_2.1.0-ubuntu14_amd64.deb
9fdc30dec21fe8debfa48b98dbfeae9f6938d34b11a9cb068d162705f2e3e0e1 proxysql_2.1.0-ubuntu16_amd64.deb
1c48ac3729c21234df2876fb5a28f643252c1d3a32496241a74ee0c220debe4a proxysql_2.1.0-ubuntu18_amd64.deb
6c7511e41a4b9dc9e92c7063f5ce5d156a644d08c4e34f0e32658d0d3f42b53e proxysql_2.1.0-ubuntu18_arm64.deb
e410a10cd6d057ddd5f6b387f8d9a3333f3c57d0b0125a8f7dfda641ccb628c7 proxysql_2.1.0-ubuntu20_amd64.deb
d97f282bcc4bb00fc6d96439c6722317b30809c95bf64c0aae9207dd46b2358f proxysql_2.1.0-ubuntu20_arm64.deb