
Currently it's too laborious to use duration suffixes when saving generated configs and also to handle suffixes when changes are made dynamically using maxctrl. It will be trivial to do that when the new configuration mechanism has been taken into use everywhere. That will not happen before MaxScale 2.5. So, in MaxScale 2.4 duration suffixes will be accepted in manually created configuration files, but no warning will be logged if a suffix is not used.
182 lines
7.8 KiB
Markdown
182 lines
7.8 KiB
Markdown
# MariaDB MaxScale 2.4.0 Release Notes
|
|
|
|
Release 2.4.0 is a Beta release.
|
|
|
|
This document describes the changes in release 2.4.0, when compared to
|
|
release 2.3.
|
|
|
|
For any problems you encounter, please consider submitting a bug
|
|
report at [Jira](https://jira.mariadb.org).
|
|
|
|
## Changed Features
|
|
|
|
### Section and object names
|
|
|
|
Section and object names starting with `@@` are now reserved for
|
|
use by MaxScale itself. If any such names are encountered in
|
|
configuration files, then MaxScale will not start.
|
|
|
|
Whitespace in section names that was deprecated in 2.2 will now be
|
|
rejected and cause the startup of MaxScale to fail.
|
|
|
|
### Binding on network ports
|
|
|
|
MaxScale 2.4.0 will now use the SO_REUSEPORT capability offered by newer kernels
|
|
that allows reuse of network listener ports. In practice this means improved
|
|
connection creation speed with more dynamic balancing of connections.
|
|
|
|
As a side-effect of this, it is possible for two MaxScale instances to bind on
|
|
the same listener port on systems that have Linux kernels newer than 3.9. This
|
|
can only happen if the MaxScale instances use completely different directory
|
|
structures (i.e. different `--basedir` arguments). Normal use of MaxScale still
|
|
detects multiple MaxScales trying to bind to the same ports. Almost always, this
|
|
will not have any negative side-effects.
|
|
|
|
### Maintenance mode and Readwritesplit
|
|
|
|
Readwritesplit now allows open transactions to finish if the master is put into
|
|
maintenance mode. To forcefully close all connections to a server use the
|
|
`maxctrl set server <name> maintenance --force` command.
|
|
|
|
### Stronger hashing algorithm for admin user passwords
|
|
|
|
The administrative user passwords are now stored as SHA2-512 hashes which is an
|
|
improvement over the older MD5 hashing algorithm. New users will use the
|
|
stronger algorithm but old users will continue using the weaker one. To upgrade
|
|
administrative users, recreate the user.
|
|
|
|
## Dropped Features
|
|
|
|
### `debugcli` and `telnetd`
|
|
|
|
The `debugcli` router and the `telnetd` protocol module it uses have been
|
|
removed.
|
|
|
|
### `ndbclustermon`
|
|
|
|
The `ndbclustermon` module has been removed.
|
|
|
|
### `mmmon`
|
|
|
|
The `mmmon` module has been removed as the `mariadbmon` monitor largely does
|
|
what it used to do.
|
|
|
|
## New Features
|
|
|
|
### Servers can be drained
|
|
|
|
It is now possible to drain a server, which means that existing
|
|
connections to the server can continue to be used but new connections
|
|
are no longer created to the server.
|
|
|
|
In the output of `maxctrl`, the fact that a server is being drained
|
|
is visible in the `State` column as the value `Draining`.
|
|
```
|
|
┌─────────┬─────────────────┬──────┬─────────────┬───────────────────────────────┬───────┐
|
|
│ Server │ Address │ Port │ Connections │ State │ GTID │
|
|
├─────────┼─────────────────┼──────┼─────────────┼───────────────────────────────┼───────┤
|
|
│ Server1 │ 192.168.121.159 │ 3306 │ 2 │ Master, Running │ 0-1-6 │
|
|
├─────────┼─────────────────┼──────┼─────────────┼───────────────────────────────┼───────┤
|
|
│ Server2 │ 192.168.121.80 │ 3306 │ 1 │ Draining, Slave, Running │ 0-1-6 │
|
|
├─────────┼─────────────────┼──────┼─────────────┼───────────────────────────────┼───────┤
|
|
│ Server3 │ 192.168.121.122 │ 3306 │ 2 │ Slave, Running │ 0-1-6 │
|
|
├─────────┼─────────────────┼──────┼─────────────┼───────────────────────────────┼───────┤
|
|
│ Server4 │ 192.168.121.144 │ 3306 │ 2 │ Slave, Running │ 0-1-6 │
|
|
└─────────┴─────────────────┴──────┴─────────────┴───────────────────────────────┴───────┘
|
|
```
|
|
A server is set in the _Draining_ state the same way as it is
|
|
set in the _Maintenance_ state:
|
|
```
|
|
$ maxctrl set server Server2 drain
|
|
```
|
|
Note that although the state is displayed as `Draining`, when setting
|
|
and clearing the state, the word `drain` is used.
|
|
|
|
Note that the full implication of draining a server depends upon
|
|
both on the role of the server and on the router being used, and its
|
|
configuration.
|
|
|
|
For instance, if readwritesplit is used and the server being drained
|
|
is a slave, then from a client's perspective there will be no difference;
|
|
readwritesplit will simply not use that server. However, if the server
|
|
being drained is the master, then it will not be possible to connect
|
|
unless `master_failure_mode` has been set to something else but the
|
|
default `fail_instantly`.
|
|
|
|
Once the server has been drained, the state will be `Drained`.
|
|
|
|
### Cluster
|
|
|
|
The servers a service uses can now be specified using the `cluster`
|
|
parameter of the service.
|
|
```
|
|
[TheService]
|
|
...
|
|
cluster=TheMonitor
|
|
```
|
|
In this case, the servers of the service will be defined by the
|
|
referred to monitor. Note that the parameters `servers` and `cluster`
|
|
are mutually exclusive.
|
|
|
|
### Durations
|
|
|
|
In the MaxScale configuration file, durations can now be suffixed with
|
|
`h`, `m`, `s` or `ms` to indicate that the duration is specified as
|
|
hours, minutes, seconds or milliseconds.
|
|
|
|
Please see the
|
|
[configuration guide](../Getting-Started/Configuration-Guide.md#durations)
|
|
for details.
|
|
|
|
_Not_ providing an explicit unit is strongly discouraged as it will be
|
|
deprecated in MaxScale 2.5.
|
|
|
|
### Query Classifier Cache
|
|
|
|
It is now possible to examine the contents of the query classifier cache.
|
|
The REST-API endpoint is
|
|
```
|
|
/v1/maxscale/query_classifier/cache
|
|
```
|
|
and the equivalent _maxctrl_ command
|
|
```
|
|
maxctrl show qc_cache
|
|
```
|
|
The output shows the statements (the canonical version) in the cache,
|
|
the number of times they have been encountered and how they have been
|
|
classified.
|
|
|
|
### REST API & MaxCtrl: Hard maintenance mode
|
|
|
|
The new `--force` option for the `set server` command in MaxCtrl allows all
|
|
connections to the server in question to be closed when it is set into
|
|
maintenance mode. This causes idle connections to be closed immediately.
|
|
|
|
For more information, read the
|
|
[REST-API](../REST-API/Resources-Server.md#set-server-state) documentation for
|
|
the `set` endpoint.
|
|
|
|
## Bug fixes
|
|
|
|
[Here is a list of bugs fixed in MaxScale 2.4.0.](https://jira.mariadb.org/issues/?jql=project%20%3D%20MXS%20AND%20issuetype%20%3D%20Bug%20AND%20status%20%3D%20Closed%20AND%20fixVersion%20%3D%202.4.0)
|
|
|
|
## Known Issues and Limitations
|
|
|
|
There are some limitations and known issues within this version of MaxScale.
|
|
For more information, please refer to the [Limitations](../About/Limitations.md) document.
|
|
|
|
## Packaging
|
|
|
|
RPM and Debian packages are provided for the Linux distributions supported
|
|
by MariaDB Enterprise.
|
|
|
|
Packages can be downloaded [here](https://mariadb.com/resources/downloads).
|
|
|
|
## Source Code
|
|
|
|
The source code of MaxScale is tagged at GitHub with a tag, which is identical
|
|
with the version of MaxScale. For instance, the tag of version X.Y.Z of MaxScale
|
|
is X.Y.Z. Further, *master* always refers to the latest released non-beta version.
|
|
|
|
The source code is available [here](https://github.com/mariadb-corporation/MaxScale).
|