Release Notes for MariaDB MaxScale 6.3.0
This page is part of MariaDB's Documentation.
The parent of this page is: Release Notes for MariaDB MaxScale 6
Topics on this page:
Overview
MariaDB MaxScale is an advanced database proxy, firewall, and query router.
MariaDB MaxScale 6.3.0 was released on 2022-04-14. This release is of General Availability (GA) maturity.
Notable Changes
Security for NoSQL Protocol Listener
With the
nosqlprotocol
module, client connections can use TLS/SSL encryption. (MXS-3968)With the
nosqlprotocol
module, client connections can use MongoDB's SCRAM authentication (with theSCRAM-SHA-1
andSCRAM-SHA-256
mechanisms) to authenticate. (MXS-3925)
Connection Pooling Enhancements
When connection pooling is enabled, the total number of connections for a server can be limited. (MXS-3902)
In prior releases, when the
persistpoolmax
server parameter was set to a non-zero value, the value only limited the number of unused connections in the connection pool, rather than the total number of connections to the server, so the total number of connections for a server could not be limited.Starting with this release, the total number of connections for a server can be limited using the
max_connections
server parameter.
When connection pooling is enabled, each MaxScale thread is limited to the same number of unused connections in the connection pool. (MXS-3902)
In prior releases, when the
persistpoolmax
server parameter was set to a non-zero value, each MaxScale thread could have a different limit on the number of unused connections in the connection pool.Starting with this release, MaxScale rounds up the
persistpoolmax
server parameter, so that every MaxScale thread has the same limit.
MaxGUI and Cooperative Monitoring
In MaxGUI, a Cooperative Monitor Indicator has been added to the Server Dashboard. (MXS-3844)
When multiple MaxScale nodes monitor the same set of servers using MariaDB Monitor (
mariadbmon
) and thecooperative_monitoring_locks
parameter is enabled, one MaxScale node is considered the active node (determined bypassive=false
), and all other MaxScale nodes are considered passive nodes (determined bypassive=true
). Active and passive nodes can route connections and queries, but only the active node can perform auto-failover when the primary server fails.In prior releases, MaxGUI did not indicate whether a MaxScale node was active or passive.
Starting with this release, when a MaxScale node is considered the active node for a set of servers monitored by MariaDB Monitor (
mariadbmon
), MaxGUI's Server Dashboard shows "Primary" in green text next to the name of the monitor.
Filtering for the KafkaCDC Router
Table-level filtering has been added for the KafkaCDC Router (
kafkacdc
). (MXS-3806)Starting with this release, the
match
andexclude
parameters can be used with the KafkaCDC Router (kafkacdc
).The
match
andexclude
parameters accept a regular expression (regex) using the syntax of PCRE2.When the
match
parameter is set, data is only included from tables that match the pattern.When the
exclude
parameter is set, data is excluded from tables that match the pattern.
Runtime Configuration Changes
When an object defined in a static configuration file is modified or deleted at runtime using
maxctrl
, MaxGUI, or the REST API, a warning is written to the MaxScale error log and returned to the client. (MXS-3413)Prior to this release, MaxScale would silently allow the static configuration file to be overridden by runtime changes.
Starting with this release, MaxScale's new warnings make the impact of runtime changes clear to administrators.
When an object defined in a static configuration file is modified at runtime, the following warning is raised:
Saving runtime modifications to 'MXS_OBJECT' in 'MXS_CONFIG_FILE'. The modified values will override the values found in the static configuration files.
When an object defined in a static configuration file is deleted at runtime, the following warning is raised:
Object 'MXS_OBJECT' is defined in a static configuration file and cannot be permanently deleted. If MaxScale is restarted, the object will appear again.
When the REST API is used, the warning is returned to the client using the
Mxs-Warning
header.When
maxctrl
is used, the warning is written tostdout
, but the warning can be disabled by setting theMAXCTRL_WARNINGS
environment variable to 0:
export MAXCTRL_WARNINGS=0
When an object defined in a static configuration file is modified at runtime using
maxctrl
, MaxGUI, or the REST API, MaxScale does not write default values for unmodified parameters to the generated configuration file. (MXS-3962)Prior to this release, when an object defined in a static configuration file was modified at runtime, MaxScale would write all available parameters to the generated configuration file in
persistdir
, even the parameters that were not modified by the operation. If a parameter was not modified, the parameter would be added to the generated configuration file with its default value. Consequently, if the parameter was later configured in the static configuration file, it would be ignored, and the default value from the generated configuration file inpersistdir
would be used.Starting with this release, when an object is modified at runtime, but a parameter is not affected by the operation, the parameter is not written to the generated configuration file.
When MaxCtrl, MaxGUI, or the REST API is used to query the configuration of a server, service, monitor, filter, or listener, the output now includes a "Source" field that contains the path to the configuration file in which the object is defined. (MXS-3413)
Prior to this release, MaxScale did not clearly state whether an object's configuration was read from a static configuration file or a generated configuration file in
persistdir
.Starting with this release, MaxScale allows administrators to see the exact path to the configuration file that was used for the object.
Issues Fixed
Can Result in a Hang or Crash
The Cache Filter (
cache
) fails to properly clear the cache on a parsing error and causes a crash. (MXS-4080)Prior to this release, the
cache
deleted the nodes when the cache was cleared.With this release, the
cache
deletes the nodes and the key-node mapping.
Can Result in Unexpected Behavior
When using the MaxScale REST API, if a result set returns an error, the SQL endpoint does not show an error has been returned. (MXS-4082)
With this release, if a result set "fails" by ending with an error, the error number, message, and SQLSTATE are added to the result body.
The Cache Filter (
cache
) incorrectly detects a parse error whenSEQUENCE
is used as an identifier in anINSERT
orDELETE
statement. (MXS-4080)maxctrl
commands return an error message like"UnhandledPromiseRejectionWarning: Unhandled promise rejection..."
due to incorrect formatting in the.maxctrl.cnf
file. (MXS-4078)Prior to this release, the cause of the error, incorrect formatting, was not indicated.
With this release, options incorrectly formatted with hyphens will throw the error
"Error: Option names must be defined without hyphens: "
and other error messages that usedEINVAL
andEACCESS
now useError
in the error message.
With the MaxScale Xpand Monitor (
xpandmon
), the status of the bootstrap server is not always the same as the status of corresponding runtime servers (MXS-4074)Prior to this release, the Monitor tick for the bootstrap server status could occur during a health check of the runtime servers. The health check is independent of the Monitor tick.
With this release, the state of the bootstrap server is updated from the runtime servers at every Monitor tick independent of the state of the health check round.
In MaxGUI, an unnecessary horizontal scroll bar appears in some dialogs. (MXS-4071)
In MaxGUI dashboard, the address field is truncated making it difficult to see the full address value. (MXS-4064)
With this release, the
ADDRESS
andPORT
columns are combined into one column calledADDRESS
to provide space for the full address value.
The Cache Filter (
cache
) does not handle multi-statements properly. (MXS-4053)Prior to this release, multi-statement results may or may not have been cached depending on if the first statement was cacheable or not.
With this release, multi-statements are always sent to the backend and their results are not cached.
In MaxGUI, the Query Editor chart is not closing as expected. (MXS-4027)
With this release, a button has been added to close the Query Editor Chart.
In MaxGUI, the Servers table in the Monitor Details page is sorted by default. (MXS-3977)
With this release, the Monitor Details page displays the servers in the same order they are received from the REST API.
Platforms
In alignment to the MariaDB Corporation Engineering Policy, MariaDB MaxScale 6.3.0 is provided for:
CentOS 7 (x86_
64) Debian 9 (x86_
64, ARM64) Debian 10 (x86_
64, ARM64) Debian 11 (x86_
64, ARM64) Red Hat Enterprise Linux 7 (x86_
64) Red Hat Enterprise Linux 8 (x86_
64, ARM64) SUSE Linux Enterprise Server 12 (x86_
64, ARM64) SUSE Linux Enterprise Server 15 (x86_
64, ARM64) Ubuntu 18.04 (x86_
64, ARM64) Ubuntu 20.04 (x86_
64, ARM64)