From e892052d85288c3c37bd83667db6ae299c6a9045 Mon Sep 17 00:00:00 2001 From: noizu Date: Tue, 23 Sep 2025 16:01:13 +0700 Subject: [PATCH] CHANGELOG update --- CHANGELOG.md | 419 +++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 376 insertions(+), 43 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5c2ea6e82..fb338c704 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,43 +1,376 @@ -v0.3.0-beta1 -============= - -* using libdaemon to daemonize the ProxySQL process -* added angel process that is able to monitor and restart ProxySQL -* added separate error log -* integrated MariaDB client library -* using libevent for connecting and querying backend MySQL servers in Monitor module -* added transaction awareness within the Proxy -* added a per-user: - * max_connection value that limits the number of connections from the same user - * transaction_persistent flag that keeps transactions within the same hostgroup for a certain user -* add debug build target (make debug will now build a binary with vs. make) -* introduce support for packets larger than 16 MB (the maximal single packet size from MySQL binary protocol) -* handling in-memory stats database locking errors gracefully by retrying (this leads to less errors when gathering stats under load) -* added possibility of killing a query from a remote backend server -* implemented LOAD MYSQL QUERY RULES FROM CONFIG -* implemented SAVE MYSQL USERS FROM RUNTIME -* implemented PROXYSQL FLUSH LOGS that makes log rotation possible -* implemented some new admin interface queries - * select @@version_comment limit 1 - * show charset - * show collation - * show tables from -* added new admin tables - * stats_mysql_processlist - * stats_mysql_connection_pool - * stats_mysql_query_digest - * stats_mysql_query_digest_reset -* added new variables for config file - * connect_timeout_server_max - * free_connections_pct - * connect_retries_delay - * max_transaction_time - * max_connections - * default_query_delay - * default_query_timeout - * sessions_sort - * default_reconnect -* improved logging -* support for 2 different config files - * proxysql.cfg - * proxysql.cnf \ No newline at end of file +# ProxySQL Changelog + +## Version 3.0.x Series - PostgreSQL Support Introduction + +### v3.0.2 (2025-08-06) +#### PostgreSQL Enhancements +- Improved error processing and reporting format for backend connections using libpq (#4947) +- Fixed backend connection reset and parameter handling for `RESET/SET TO DEFAULT` (#5060) +- Fixed crash when mirroring is configured for PostgreSQL (#5051) +- Fixed memory leak during Admin startup in `flush_pgsql_variables___database_to_runtime` (#5037) +- Fixed `pgsql_replication_hostgroups` table definition - range for `check_type` now reflects only supported checks (#5043) + +#### MySQL Fixes +- Added Group Replication support for MySQL 8.4 and 9.x (#4983) +- Fixed memory leak in `stats_mysql_global` (#5006) +- Fixed potential overflow in `SQLite3_memory_bytes` field from `stats_mysql_global` (#5006) +- Fixed MySQL binary log handling for prepared statements with 0 parameters (#5007) + +#### Common Fixes +- Fixed memory leak in Query Processor during query rules deletion (#5037) + +### v3.0.1 (2025-05-13) +#### Major PostgreSQL Features +- **Parameter/Variable Tracking**: Significantly improves multiplexing capabilities for better connection reuse (#4799) +- **Backend Monitoring Support**: Handles larger number of backend servers with small worker thread set (#4726) + - Connect checks: Availability and connection latency assessment + - Ping checks: Responsiveness with automatic SHUNNING and latency tracking + - ReadOnly checks: Server placement via `pgsql_replication_hostgroups` with automatic failover +- **Transaction Support**: Variable state tracking through transactions and savepoints (SAVEPOINT/ROLLBACK) (#4929) +- **Connection Parameters**: Full support for all PostgreSQL connection parameters with server-side validation (#4899) +- **Notice and Warning Messages**: Support with Query Cache compatibility (#4770) +- **COPY Support**: Added support for `COPY ... FROM STDIN` via FAST FORWARD (#4762, #4874) + +#### Major MySQL Features +- **Dual-Password Support**: Allows two passwords for password rotation like MySQL native feature +- **Enhanced Event and Query Logging** (ported from 2.7.2): + - Real-time query logging in `stats_mysql_query_events` and `history_mysql_query_events` + - MySQL Logger metrics exported through `stats_mysql_global` and Prometheus + - Circular buffer with SQLite databases (in-memory and on-disk) +- **Prepared Statement Parameter Logging** (#4895, #4922): + - Logs actual parameter values for prepared statements + - Available in binary and JSON formats + - Controlled by `mysql-eventslog_stmt_parameters` (disabled by default) +- **New PROXYSQL_METADATA Event**: Added metadata event in binary eventlog format (#4922) +- **DNS Cache Enhancement**: Better distribution of DNS resolution attempts (#4745) + +#### Common Improvements +- **OpenSSL Changes**: Now uses system OpenSSL library (dynamically linked) instead of static (#4740) +- **Admin Performance**: Avoids unnecessary VACUUM operations on stats database (#4859) + +### v3.0.0-alpha (2024-09-30) +- **Initial PostgreSQL Support**: + - Default ports: 6132 (admin), 6133 (PostgreSQL traffic) + - Authentication methods: Plain Text, MD5, SCRAM-SHA-256 + - PostgreSQL-specific configuration tables and options + - SSL support for frontend and backend connections + - Multiplexing and connection pooling + - Multiple statements in single query support +- **Architecture Changes**: + - Separate query processors for MySQL and PostgreSQL + - Refactored Query Processor Architecture + - New PostgreSQL statistics tables (pgsql_servers, pgsql_users, pgsql_query_rules, etc.) + +## Version 2.7.x Series + +### v2.7.3 (2025-03-11) +- Added PMM compatibility for `runtime_mysql_servers_*` metrics in Prometheus exporter (#4854) +- Ignore tracking for `session_track_system_variables` until properly supported (#4853, #4839) +- Added support for `@@session` and `@@global` syntax in SET statements parser (#4853) +- Fixed frontend/backend collation mismatch when collation ID larger than 255 (#4850) +- Fixed DELETE operations for `stats_mysql_query_events` on stats memory database (#4822) +- Fixed PMM compatibility for new MySQL_Logger metrics (#4822) + +### v2.7.2 (2025-01-27) +#### Major Features +- **Enhanced Event and Query Logging** (#4713, #4802): + - Real-time insights with circular buffer and SQLite databases + - New tables: `stats_mysql_query_events` and `history_mysql_query_events` + - MySQL Logger metrics in `stats_mysql_global` and Prometheus exporter +- MySQL protocol compression level control via `mysql-protocol_compression_level` (#4789) +- `mysql_hostgroup_attributes` configurable through config file (#4748) +- Randomized cache TTL queueing reducing helper thread needs (#4729) +- Integrity checks for malformed MySQL packets (#4742) + +#### Bug Fixes +- Fixed crash on empty Admin interface queries (#4722) +- Fixed halt on `PROXYSQL RESUME` command (#4757) +- Fixed SSL cache leak for auxiliary threads (#4801) +- Fixed query cache storing behavior for `mysql-query_cache_stores_empty_result` (#4723) +- Fixed potential overflows for `mysql_thread___threshold_resultset_size` (#4733) + +### v2.7.1 (2024-09-23) +- Added Fedora 41 builds (#4635) +- DNS Cache improvements - removes DNS records on connection failures (#4656) +- DNS cache auto-disabled with `-M` or `--no-monitor` option +- Faster packaging with optimized file operations (#4647) +- Fixed `--initial` option after crashes (#4659) +- Fixed TLS certificate reload after crashes (#4658) +- Fixed leading spaces in `stats_mysql_query_digest.digest` (#4646) +- Applied clang fix to all clang versions (#4635) + +### v2.7.0 (2024-09-04) +#### Major Features +- **PROXY Protocol V1 Support**: Enables identifying original client IP behind load balancers + - IP-based query rules for caching, routing, filtering + - Improved processlist and audit logs showing original IPs + - Enhanced security with IP-based access restrictions +- **Additional ProxySQL APT Repository Layout**: New common layout support + - Example: `deb https://repo.proxysql.com/ProxySQL bookworm main` +- **Thread Naming**: Easier debugging with named threads + +## Version 2.6.x Series + +### v2.6.6 (2024-09-23) +- DNS Cache updates - removes outdated records on connection failures (#4656) +- DNS cache auto-disabled with `-M` or `--no-monitor` option +- Fixed leading spaces in `stats_mysql_query_digest.digest` (#4646) + +### v2.6.5 (2024-08-29) +- Fixed USE command semicolon handling (#4629) +- Fixed `stats_mysql_query_digest.digest` case normalization (#4626) + +### v2.6.4 (2024-08-27) +- Updated OpenSSL to v3.3.1 (#4561) +- Added Ubuntu 24 and Fedora 40 support (#4541) +- Improved USE query parsing for text protocol (#4605) +- Disabled AWS RDS topology auto-discovery by default (#4578) +- Fixed SSL error queue pollution causing invalid terminations (#4555, #4602) +- Fixed control chars in query digests (#4554) - **Note: Review mysql_query_rules if using extra spaces** +- Fixed `COM_CHANGE_USER` with hashed passwords for `native_mysql_password` (#4623) +- Fixed crashes for `COM_CHANGE_USER` with `caching_sha2_password` (#4619) + +### v2.6.3 (2024-05-20) +#### Major Features +- **New Hostgroup Attributes**: + - `monitor_slave_lag_when_null` for `hostgroup_settings` (#4528) + - `max_num_online_servers` safety feature (#4517) +- Handle `SELECT LAST_INSERT_ID() FROM DUAL` without disabling multiplexing (#4520) +- Support SIGUSR1 for log rotation (#4502) + +#### Bug Fixes +- Fixed client reconnect with SSL enabled (#4537) +- Fixed startup crashes from HTTP_Server/RESTAPI requests (#4518) +- Fixed memory leaks in Cluster and GTID Binlog Reader (#4546) + +### v2.6.2 (2024-04-02) +- AWS RDS MySQL Multi-AZ Cluster auto-discovery (#4490, #4406) +- SQLite3 password management functions: `MYSQL_NATIVE_PASSWORD()`, `CACHING_SHA2_PASSWORD()` (#4479) +- Daemon restart with exponential backoff (#4480) +- Fixed invalid free for `caching_sha2_password` with `CLIENT_COMPRESS` (#4485) +- Fixed crash on invalid `stmt_id` for `COM_STMT_EXECUTE` (#4481) + +### v2.6.1 (2024-03-21) +- Multiple fixes for `mysql_servers_ssl_params` (#4467) +- Fixed Prometheus `connection_pool` metrics reset (#4470) +- Added `session_id` to error log for lagging/offline server detection + +### v2.6.0 (2024-03-04) +#### Major Features +- **`caching_sha2_password` Authentication Support**: + - Deprecated `admin-hash_passwords` + - New variable `mysql-default_authentication_plugin` +- **`mysql_servers_ssl_params` Table**: Per-host SSL configuration (#4458) +- **New Web Interface** via Web Interface Plugin +- **Enhanced LDAP Support** via LDAP Plugin +- **Warnings Handling**: `SHOW WARNINGS` support with control variables (#4365) +- **Group Replication Autodiscovery** for MySQL 8 (#4208) +- **Bootstrap Mode** for MySQL 8 Group Replication (#4232) +- **ProxySQL Cluster**: New synchronization algorithm for `mysql_servers` (#4169) + +#### Dependency Updates +- libmariadbclient: 3.1.9 → 3.3.8 (#4407) +- OpenSSL: 3.1.4 → 3.2.1 (#4360, #4371, #4447, #4448) +- SQLite3: 3.42 → 3.43.2 (#4363) +- curl: 7.87.0 → 8.4.0 (#4359) +- libhttpserver: 0.9.75 → 0.9.77 (#4362) + +## Version 2.5.x Series + +### v2.5.5 (2023-08-18) +- Fixed file descriptor leak with SSL CA certificates (regression from 2.5.1) (#4307) +- Fixed infinite loop when SSL frontend connection terminated during handshake (#4321) +- Fixed COMMIT/ROLLBACK filtering after backend errors (#4306) + +### v2.5.4 (2023-07-19) +- Reworked SET parser implementation (disabled by default) (#4274) +- Added `SET TRANSACTION ISOLATION LEVEL` support (#4280, #4283) +- Added error code classification for Prometheus MySQL errors (#4290) +- Fixed utf8mb3 charset crashes (#4269) +- Fixed `read_only_actions` crash with OFFLINE_SERVERS (#4288) + +### v2.5.3 (2023-06-21) +- Debian 12 support (#4265) +- SQLite3 3.42.0 (#4263) +- SSLKEYLOGFILE support via `admin-ssl_keylog_file` (#4236) +- New troubleshooting features: `mysql-data_packets_history_size`, `coredump_filters` (#4225) +- Fixed DNS cache configuration file loading (#4235) +- Fixed invalid reads in fast-forward sessions (#4229) + +### v2.5.2 (2023-05-12) +- OpenSSL 3.1.0 (#4165) +- Weighted flagOUTs for `mysql_query_rules` (#4202) +- Monitor read-only actions rework - lighter operations (#4127) +- Query digest generation optimization (#4096) +- New `mysql-query_rules_fast_routing_algorithm` variable (#4182) +- Core dump generation on demand (x86-64 Linux only) (#4188) + +### v2.5.1 (2023-03-09) +- `mysql_hostgroup_attributes.init_connect` support (#4110) +- Multiple binlog clients per username (#4105) +- x509 shared cache for faster SSL connections (#4120) +- OpenSSL 3.0.8 security update (#4122) +- Fixed fast_forward encryption for binlog commands (#4114) + +### v2.5.0 (2023-02-05) +- Asynchronous parallel fetching for Monitor module (#4063) +- Group Replication one-thread-per-cluster monitoring (#4082) +- Native MySQL 8 Group Replication monitoring (#4082) +- `mysql_hostgroup_attributes` feature with multiplex/free_connections_pct/throttle (#4091) +- COM_BINLOG_DUMP/COM_BINLOG_DUMP_GTID/COM_REGISTER_SLAVE support (#3807) +- Query Cache soft TTL (#4086) +- Major dependency upgrades (cityhash, clickhouse-cpp, curl, json, etc.) (#4069) + +## Version 2.4.x Series + +### v2.4.8 (2023-02-14) +- **Security**: OpenSSL 3.0.8 with multiple CVE fixes (#4118) + +### v2.4.7 (2023-01-18) +- Fixed SSL connection hangs under edge conditions (#4083) + +### v2.4.6 (2023-01-12) +- fast_forward SSL support (#4062) +- Fedora 37 builds (#4058) +- Fixed autocommit reporting issues (#4052) +- Fixed replica shunning when `max_replication_lag = 0` (#4077) + +### v2.4.5 (2022-12-12) +- OpenSSL 3.0.7 (#4007) +- RESTAPI improvements (#4046) +- ProxySQL local DNS Cache feature (#4024) +- Fixed malformed packet with MariaDB fast_forward (#3996) +- Fixed compressed packet handling (#3995) + +### v2.4.4 (2022-09-15) +- AWS Aurora isolation level fixes (#3976) +- Fixed multiplexing with cached STMT (#3970) +- Fixed crashes with high server counts (#3973) + +### v2.4.3 (2022-08-15) +- Cluster fetch query processing improvements (#3930, #3921) +- OpenSSL 3.0.5 performance fix (#3938) +- ClickHouse 2.1.0 with CLIENT_DEPRECATE_EOF (#3888) + +### v2.4.2 (2022-06-27) +- AlmaLinux 9 builds (#3884) +- Fixed query digest parsing crashes (#3889, #3901) + +### v2.4.1 (2022-05-13) +- GCC 12.1.0 compilation fixes (#3877, #3875) + +### v2.4.0 (2022-05-11) +#### Major Features +- Session variable `transaction_isolation` no longer disables multiplexing (#3664) +- OpenSSL 3.0.2 (#3844, #3675) +- New `mysql-unshun_algorithm` variable (#3649) +- `COM_RESET_CONNECTION` support for frontend (#3645) +- Query digest improvements with grouping controls (#3680) +- Session variable parsing improvements (#3702, #3754) +- ProxySQL Cluster UUID support (#3305) +- AWS Aurora auto-discovery +- New builds: OpenSuse15, AlmaLinux, Fedora34, Ubuntu22 + +## Version 2.3.x Series + +### v2.3.2 (2021-10-01) +- Fixed `get_multiple_idle_connections()` preventing backend pings (#3628) +- Fixed SET variable parsing with '@@' (#3647) +- Fixed crashes with client_error_limit and timeouts (#3646) + +### v2.3.1 (2021-09-16) +- Fixed Client Error Limit initialization issues (#3627) + +### v2.3.0 (2021-09-15) +#### Major Features +- TLS files runtime reload with `PROXYSQL TLS RELOAD` (#3552) +- Enhanced SPIFFE authentication (#3552) +- Private key support beyond RSA (e.g., EC keys) (#3552) +- Certificate revocation list (CRL) and multiple CA support (#3577) +- Client Error Limit auto-blocking feature (#3617) +- Group replication monitoring improvements (#3533) +- Per-user default transaction isolation level (#3466) +- Aurora improvements for replicas with zero lag (#3515) +- LDAP authentication rework (#3491) + +## Version 2.2.x Series + +### v2.2.2 (2021-09-08) +- Fixed USE statement parsing issues (#3610) +- Fixed prepared statement NULL value preservation (#3604) +- Fixed RESTAPI socket fd issues (#3611) + +### v2.2.1 (2021-09-02) +- Grave accent support in SET statements (#3479) +- USE statement comment support (#3493) +- Fixed memory leaks and corruptions in prepared statements (#3544, #3546) +- Fixed fast_forward CLIENT_DEPRECATE_EOF mismatch (#3560) + +### v2.2.0 (2021-06-08) +- Query annotations evaluation for prepared statements (#3453) +- LDAP global variables synchronization (#3419) +- re2 library with -fPIC (#3405) +- Fixed crashes with invalid metadata access (#3461) +- Fixed query rules processing for prepared statements (#3427) + +## Version 2.1.x Series + +### v2.1.1 (2021-04-21) +- Fixed collation issues (MySQL bugs #102265, #102266) (#3249, #3276) +- Fixed ARM CentOS startup abort (#3256) +- Fixed memory corruptions (#3263, #3350) +- Fixed PXC reader connections during maintenance (#3182) +- SPIFFE support (#3343) +- Prepared statements buffering (#3295) + +### v2.1.0 (2021-01-13) +#### Major Features +- **Built-in Prometheus Exporter**: Native metrics endpoint +- Routing metadata caching prevention for COM_STMT_EXECUTE +- ProxySQL Cluster SSL support (#2748) +- Cluster version verification (#2750) +- Extended cluster synchronization (galera, group_replication, aurora) (#2687) +- SQLite3 plugin support (#2821) +- Oracle mysqlsh support (#2854) +- New `attributes` column for mysql_users (#3083) and mysql_query_rules (#3088) +- Initial CLIENT_DEPRECATE_EOF support (text protocol only) +- Honor `wsrep_sst_donor_rejects_queries` for Galera (#3227) + +## Version 2.0.x Series (Selected Major Releases) + +### v2.0.18 (2021-04-08) +- Improved prepared statement metadata handling (#1574) +- Fixed infinite loops and memory issues +- Fixed connection dropping from PXC readers (#3182) + +### v2.0.15 (2020-10-29) +- ARM64 packages and Docker images +- `mysql-max_transaction_idle_time` and `mysql-max_transaction_time` variables +- Per-thread connection cache re-enabled + +### v2.0.10 (2020-02-17) +- Fixed client stalls when no backends available (#2536) +- Fixed Galera issues with pxc_maint_mode (#2537, #2533) +- Firewall whitelist fixes (#2534) + +### v2.0.1 (2019-01-25) +- MySQL replication hostgroups extended with `check_type` field +- GTID causal reads implementation +- Frontend SSL support +- Native Galera Cluster support +- LDAP authentication support +- DNS cache implementation +- Security: firewall whitelist and SQL injection engine + +## Version 1.4.x Series (Selected) + +### v1.4.16 (2020-01-20) +- COM_FIELD_LIST support +- mysql-keep_multiplexing_variables variable +- Integer overflow fixes + +### v1.4.1 (2017-08-01) +- Native MySQL Group Replication support +- PCRE and RC2 regex engines +- Background thread for connection reset +- FreeBSD and ARM CPU support