Skip to content

v2.1.0

Compare
Choose a tag to compare
@pondix pondix released this 13 Jan 14:21
· 16 commits to v2.1.0 since this release
17a4b4a

Release date: 2021-01-13

Compared to v2.0.15, ProxySQL v2.1.0 introduces the following features, enhancements and bug fixes:

New features

  1. 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
  2. Added code that prevents caching of routing metadata for COM_STMT_EXECUTE.
  3. Added support for FRs 2660, 2661, 2662, 2663 and 1377. These changes allow
    more uniform query digests, grouping different queries into an consistent format.
  4. 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 and mysql_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 and admin_variables. #2856
  5. Support for the SQLite3 plugin, this opens the road for encryption at rest as well as other features. #2821
  6. Added support for Oracle mysqlsh. #2854
  7. Introduced several minor SHUTDOWN command changes.
    • Mapped the command PROXYSQL SHUTDOWN to PROXYSQL KILL, performing a very fast shutdown.
    • Legacy PROXYSQL SHUTDOWN is now implemented as PROXYSQL SHUTDOWN SLOW.
  8. Introduced new column attributes to the mysql_users(#3083) and mysql_query_rules(#3088) tables.
  9. Added initial support for CLIENT_DEPRECATE_EOF. Currently ProxySQL has support for CLIENT_DEPRECATE_EOF for text protocol only, and excluding prepared statements.
  10. ProxySQL now honors wsrep_sst_donor_rejects_queries so DONOR nodes no longer need to be set to OFFLINE during a SST. For implementation details about this please refer to the official documentation #3227 #3227
  11. Introduced new WebInterfacePlugin to support the WebInterface component of the ProxySQL Enterprise Edition extension.

Bug fixes

  1. Fixed client connection stall when no backends are available. #3133
  2. Galera nodes permanently dropped from runtime_mysql_servers when writer_is_also_reader=2. #3187
    • Readers that were only part of the reader_hostgroup, due to, for example, having read_only flag equal 1,
      were being permanently dropped from the runtime_mysql_servers table.
  3. Fixed a bug where ProxySQL would create connections exceeding the defined max_connections. #2619
    • ProxySQL now enforces CLIENT_MULTI_RESULTS for client connections specifying CLIENT_MULTI_STATEMENTS as per the MySQL specification.
  4. Fixed error log and errors reported to clients when several statements fails #3177
  5. 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 for mysql_close_no_command.
  6. Fixed a bug preventing ProxySQL Native Galera modules from operating after a PROXYSQL RESTART statement is issued via ProxySQL Admin. #2330
  7. Connections not being cleaned up in case of match_tracked_options were always failing, this has been fixed. #3201
  8. Galera nodes were wrongly purged after being set to OFFLINE HARD i.e. placed in the offline_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 the offline_hostgroup again. The second placement wouldnt overwrite it`s status, creating the possibility of being completely purged from the tables.
  9. 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 the reader_hostgroup.

Code improvements / Refactoring

  1. Refactored MySQL_Thread::run. Method has been split into multiple functions to improve readability. Relevant commits: #1, #2, #3,#4, #5, #6.
  2. Removed code refactored into the new MySQL_Thread.status_variables array implementation.
  3. Refactored the session handler MySQL_Session::handler(), split code into serveral much more manageable sections. #2738 & #3110
  4. Refactored MySQL_Connection setter/getter functions functions for status_flags. #2717

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