Release Notes for MariaDB MaxScale 23.08.4
This page is part of MariaDB's Documentation.
The parent of this page is: Release Notes for MariaDB MaxScale 23.08
Topics on this page:
Overview
MariaDB MaxScale is an advanced database proxy and query router. MaxScale is a component of MariaDB database products.
MariaDB MaxScale 23.08.4 was released on 2023-12-05. This release is of General Availability (GA) maturity.
Fixed Security Vulnerabilities
CVE (with cve.org link) | Details |
libmicrohttpd has been updated to version 0.9.76 (MXS-4751) |
MaxGUI Enhancements
MaxGUI is a graphical utility that can perform administrative tasks using MaxScale's REST API.
Enhancements in this release include:
Entity Relationship Diagrams (ERD) can be created in the Workspace. (MXS-3735)
Visualization of response time distribution (
response_time_distributionin the REST API) (MXS-3761)Query Editor displays additional detail (schema object insights) after clicking on a table, procedure, trigger, view, or stored function. Detail includes indexes and foreign keys. (MXS-3991)
Built-in Caching in nosqlprotocol
For nosqlprotocol, internal caching support has been added for increased efficiency. (MXS-3664)
Starting with this release,
nosqlprotocol.internal_cacheuses keys created from NoSQL protocol requests and stores NoSQL protocol responses.The internal cache can be configured by using the following nested configuration syntax:
[My-NoSQL-Listener] ... nosqlprotocol.internal_cache=cache nosqlprotocol.cache.max_size=10M nosqlprotocol.cache.soft_ttl=30s nosqlprotocol.cache.hard_ttl=40s ...
LOAD DATA INFILE from S3
The LDI filter enables data loading from S3 API-compatible object storage such as AWS S3, Google Cloud Storage, or locally-run storage like MinIO. (MXS-4618)
File paths that start with
S3://orgs://are interpreted as S3 object files.For example, after filter setup, the following SQL statement would would load the file
my-data.csvfrom the bucketmy-bucketinto the tablet1:LOAD DATA INFILE 'S3://my-bucket/my-data.csv' INTO TABLE t1 FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';
For additional information, see LDI filter documentation.
Notable Changes
Common Configuration Blocks
Configuration blocks can be defined which are common to multiple sections, and then be included in those sections by name.
This can be useful in cases where multiple monitors are configured the same except for their list of servers.
For example:
[Monitor-Common] type=include module=mariadbmon user=the_user password=the_password handle_events=false monitor_interval=2000ms backend_connect_timeout = 3s backend_connect_attempts = 5 [Monitor1] type=monitor @include=Monitor-Common servers=Server1, Server2 [Monitor2] type=monitor @include=Monitor-Common servers=Server3, Server3
Switchover Improvements
With MariaDB Monitor (mariadbmon), during a switchover MariaDB Monitor initiates a new connection to the master with a long timeout, ignoring the limit of backend_read_timeout. (MXS-2744)
This reduces the probability of timeout when executing long-running statements such as
SET GLOBAL read_only=1When kicking-out super and read-only admin users, the monitor prevent writes with
FLUSH TABLES WITH READ LOCKFor additional information, see MariaDB Monitor documentation.
Manual Forced Switchover
Manual forced switchover can be initiated with the MaxCtrl switchover-force command. (MXS-3983)
switchover-forceswaps a running primary with a replica, ignoring most errors.This command can be useful where an automatic switchover may not happen. For example, manual forced switchover may be needed if the primary server responds to pings but does not perform other commands.
switchover-forceshould be used with caution because it may lead to diverging replication on the old primary.
Safer Transaction Replay
With readwritesplit router with transaction_replay enabled, default transaction replay behavior has changed. (MXS-4505)
transaction_replay_safe_commitcontrols whether to replay transactions that were about to be committed to the server.The new default behavior is not to replay transactions that were being committed to the server when the connection was lost.
Partial Results and Replay
With readwritesplit router, if a query in a transaction is interrupted and the result was partially delivered to the client, the query will be re-executed and the part of the result already delivered to the client will be discarded. (MXS-4549)
fast_universal Causal Reads
With readwritesplit router, the behavior of causal_reads=universal and causal_reads=fast can be combined with causal_reads=fast_universal (MXS-4123)
fast_universaluses the same mechanism to retrieve GTID position asuniversalfast_universalbehaves likefastwhen routing queries.
schemawriter Cache Invalidation
With schemawriter router, the database map cache can be cleared manually using maxctrl (MXS-4215)
Syntax:
maxctrl call command schemarouter clear <service>This makes it possible to schedule the clearing of the caches for busy systems where the update of the map takes a long time.
schemawriter Stale Cache Usage
With schemawriter router, stale entries in the database map can be used up to max_staleness seconds. (MXS-4216)
This reduces the impact that a shard update causes to the client applications.
PAM Authentication Sandboxing
PAM authentication can be run in a suid sandbox subprocess. (MXS-3753)
This behavior is enabled with PAM Authenticator when
pam_modeissuid.For additional information, see PAM Authenticator documentation.
Service Password Changeover
When a service password is changed, MaxScale remembers and will use the previous password if the new password does not work. (MXS-4232)
This makes it easier to perform a password changeover, since the password in the backend and the password in MaxScale do not need to be changed simultaneously.
regex Matching Limits
The PCRE2 library used by MaxScale now limits heap memory to 1GB and limits matches to 500000. This change prevents catastrophic backtracking when a regular expression uses nested recursion. (MXS-3531)
REST API JWT Issuer
admin_jwt_issuer configures the value of the iss field in JWT generated by the MaxScale REST API, allowing clients to see who issued the token. (MXS-4277)
Prior to this release, the issuer was
maxscalefor all tokens.
Logging Improvement
Logging due to log_info no longer results in log entries containing extra newlines that are present in the logged SQL statement. (MXS-4385)
Prior to this release, SQL statements were logged verbatim. If the SQL statement contained extra newlines, the log entry would also include those newlines.
Starting with this release, newlines are replaced with the text
\nso that the log line does not contain extra newlines.
MaxGUI UI Improvement
When adding a new query tab, the new query tab automatically uses the current active database of the current active query tab. (MXS-4364)
Region-Aware Bootstrap for MariaDB Xpand
With Xpand monitor, it is possible to limit the nodes that the monitor dynamically detects to those in a specific region.
For additional information, see
region_nameandregion_oidin Xpand monitor documentation.
MariaDB Xpand LDAP Support
In support of LDAP features added in MariaDB Xpand 23.09.1, the MariaDB Authenticator (mariadbauth) includes a passthrough authentication mode.
Enabled with
authenticator_options=clear_pw_passthrough=trueSince passwords are sent in clear-text, the MaxScale listener should be configured for SSL (TLS).
For additional information, see MariaDB Authenticator documentation.
Early Connection Metadata
The connection_metadata listener parameter controls the set of metadata variables sent to the client during connection creation. (MXS-4635)
By default, the following values are sent:
character_set_clientsystem variablecharacter_set_connectionsystem variablecharacter_set_resultssystem variablemax_allowed_packetsystem variablesystem_time_zonesystem variabletime_zonesystem variabletx_isolationsystem variablethreads_connected, with the current number of connectionsconnection_id, with the real 64-bit connection ID
Compatible MariaDB Connectors will use this information from MaxScale instead of querying the values of the variables from the database server. This will speed up connection creation.
Renamed Features
connection_timeoutconfiguration parameter has been renamed towait_timeoutconnection_timeoutis an alias towait_timeoutThe use of the old name (
connection_timeout) is deprecated.
For
readwritesplitrouter, themax_slave_replication_lagparameter has been renamed tomax_replication_lagmax_slave_replication_lagis an alias tomax_replication_lagThe use of the old name (
max_slave_replication lag) is deprecated.
Deprecated Features
query_classifierconfiguration parameter is deprecated and ignored.query_classifier_argsconfiguration parameter is deprecated and ignored.strip_db_escconfiguration parameter is deprecated.The default behavior of stripping escape characters is in all known cases the correct behavior. This parameter is never required.
Issues Fixed
Can result in unexpected behavior
log_throttlingis not disabled iflog_infois enabled, which can cause omission of log messages. (MXS-4749)Connection IDs are missing from error messages. (MXS-4735)
With
readwritesplitrouter,slave_selection_criteriadoes not accept lowercased versions of enumeration values. (MXS-4724)Graphs in MaxGUI can refresh continually, even when refresh is stopped. (MXS-4477)
Upgrade Notes
Before upgrading to MariaDB MaxScale 23.08.1, back up any existing configuration files.
Platforms
In alignment to the MariaDB Corporation Engineering Policy, MariaDB MaxScale 23.08.4 is provided for:
CentOS 7 (x86_
64) Debian 10 (x86_
64, ARM64) Debian 11 (x86_
64, ARM64) Debian 12 (x86_
64, ARM64) Red Hat Enterprise Linux 7 (x86_
64) Red Hat Enterprise Linux 8 (x86_
64, ARM64) Red Hat Enterprise Linux 9 (x86_
64, ARM64) Rocky Linux 8 (x86_
64, ARM64) Rocky Linux 9 (x86_
64, ARM64) SUSE Linux Enterprise Server 15 (x86_
64, ARM64) Ubuntu 20.04 (x86_
64, ARM64) Ubuntu 22.04 (x86_
64, ARM64)
