247 lines
		
	
	
		
			8.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			247 lines
		
	
	
		
			8.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# MariaDB MaxScale 2.2.1 Release Notes -- 2018-01-11
 | 
						|
 | 
						|
Release 2.2.1 is a Beta release.
 | 
						|
 | 
						|
This document describes the changes in release 2.2.1, when compared to
 | 
						|
release 2.2.0.
 | 
						|
 | 
						|
For any problems you encounter, please consider submitting a bug
 | 
						|
report at [Jira](https://jira.mariadb.org).
 | 
						|
 | 
						|
## Changed Features
 | 
						|
 | 
						|
### Process identity
 | 
						|
 | 
						|
By default, MaxScale can no longer be run as `root`, but must be run as some
 | 
						|
other user. However, it is possible to start MaxScale as `root`, as long as
 | 
						|
the user to run MaxScale as is provided as a command line argument:
 | 
						|
```
 | 
						|
root@host:~# maxscale --user=maxuser ...
 | 
						|
```
 | 
						|
If it is imperative to run MaxScale as root, e.g. in a Docker container, it
 | 
						|
can be achieved by invoking MaxScale as root and by explicitly specifying
 | 
						|
the user to also be root:
 | 
						|
```
 | 
						|
root@host:~# maxscale --user=root ...
 | 
						|
```
 | 
						|
 | 
						|
### Binlog server
 | 
						|
 | 
						|
* The `mariadb10_slave_gtid` parameter was removed and slave connections can now
 | 
						|
  always register with MariaDB 10 GTID.
 | 
						|
  This means the gtid_maps SQLite database is always updated.
 | 
						|
 | 
						|
* The `binlog_structure` parameter was removed and the binlogs are stored
 | 
						|
  automatically in 'tree' mode when `mariadb10_master_gtid` is enabled
 | 
						|
  (GTID registration to master).
 | 
						|
 | 
						|
* If `mariadb10_master_gtid` is enabled, the `transaction_safety` is
 | 
						|
  automatically enabled. In MaxScale 2.2.0, if `transaction_safety` was disabled
 | 
						|
  when `mariadb10_master_gtid` was enabled MaxScale would refuse to start.
 | 
						|
 | 
						|
* The binlogrouter can accept GTID slave registration from MariaDB 10.X slaves
 | 
						|
  and can also register to Master server MariaDB 10.x using GTID.
 | 
						|
 | 
						|
### Module names and case sensitivity
 | 
						|
 | 
						|
* The filenames of all modules have been made lowercase.
 | 
						|
* When specifying a module, the name matching is case insensitive.
 | 
						|
 | 
						|
In practice this means that in the configuration file, the following
 | 
						|
are all equivalent:
 | 
						|
```
 | 
						|
router=readwritesplit
 | 
						|
 | 
						|
router=READWRITESPLIT
 | 
						|
 | 
						|
router=ReadWriteSplit
 | 
						|
```
 | 
						|
 | 
						|
### MySQL/MariaDB Client Protocol
 | 
						|
 | 
						|
The shared object implementing the client protocol has been renamed
 | 
						|
from `libMySQLClient.so` to `libmaridbclient.so`. In practice this means
 | 
						|
that, in the MaxScale configuration file, `MySQLClient` should be replaced
 | 
						|
with `mariadbclient` or, e.g., `MariaDBClient`, as module names are matched
 | 
						|
in a case insensitive manner.
 | 
						|
 | 
						|
As an example, a listener section like
 | 
						|
```
 | 
						|
[TheListener]
 | 
						|
type=listener
 | 
						|
...
 | 
						|
protocol=MySQLClient
 | 
						|
```
 | 
						|
should be changed into
 | 
						|
```
 | 
						|
[TheListener]
 | 
						|
type=listener
 | 
						|
...
 | 
						|
protocol=MariaDBClient
 | 
						|
```
 | 
						|
*NOTE* Using `MySQLClient` is still supported, but has been deprecated.
 | 
						|
 | 
						|
### MySQL Backend Protocol
 | 
						|
 | 
						|
The shared object implementing the backend protocol has been renamed
 | 
						|
from `libMySQLBackend.so` to `libmaridbbackend.so`. In practice this means
 | 
						|
that, in the MaxScale configuration file, `MySQLBackend` should be replaced
 | 
						|
with `mariadbbackend` or, e.g., `MariaDBBackend`, as module names are matched
 | 
						|
in a case insensitive manner.
 | 
						|
 | 
						|
As an example, a server section like
 | 
						|
```
 | 
						|
[TheServer]
 | 
						|
type=server
 | 
						|
...
 | 
						|
protocol=MySQLBackend
 | 
						|
```
 | 
						|
should be changed into
 | 
						|
```
 | 
						|
[TheServer]
 | 
						|
type=server
 | 
						|
...
 | 
						|
protocol=MariaDBBackend
 | 
						|
```
 | 
						|
*NOTE* Using `MySQLBackend` is still supported, but has been deprecated.
 | 
						|
 | 
						|
### MySQL Monitor
 | 
						|
 | 
						|
Renamed to [MariaDB Monitor](../Monitors/MariaDB-Monitor.md).
 | 
						|
 | 
						|
Note that this affects the module name as well. Up until MaxScale 2.2.0
 | 
						|
a configuration section referring to this monitor would look like
 | 
						|
```
 | 
						|
[MyMonitor]
 | 
						|
type=monitor
 | 
						|
module=mysqlmon
 | 
						|
...
 | 
						|
```
 | 
						|
but from MaxScale 2.2.1 onwards it should look like
 | 
						|
```
 | 
						|
[MyMonitor]
 | 
						|
type=monitor
 | 
						|
module=mariadbmon
 | 
						|
...
 | 
						|
```
 | 
						|
The name `mysqlmon` has been deprecated but can still be used, although it will
 | 
						|
cause a warning to be logged.
 | 
						|
 | 
						|
### MariaDB Monitor
 | 
						|
 | 
						|
The default value of the configuration parameter `detect_standalone_master` has
 | 
						|
been changed from `false` to `true`.
 | 
						|
 | 
						|
### ReadWritesplit
 | 
						|
 | 
						|
The default value of `strict_multi_stmt` was changed to `false` to make
 | 
						|
usage of atomic compound statements and multi-statement queries less
 | 
						|
restrictive and to align it with the default value of `strict_sp_calls`.
 | 
						|
 | 
						|
Most cases where the functionality of `strict_multi_stmt` was triggered
 | 
						|
were cases where the added safety of locking a session to the master did
 | 
						|
more harm than it did good.
 | 
						|
 | 
						|
The only case where `strict_multi_stmt` should be enabled is when a
 | 
						|
multi-statement or a compound statement modifies the state of the
 | 
						|
session. This is not a good practice and a change in the client side
 | 
						|
behavior is advised.
 | 
						|
 | 
						|
### Top Filter
 | 
						|
 | 
						|
The top filter now uses the session ID instead of an internal counter for the
 | 
						|
names of the log file names.
 | 
						|
 | 
						|
### MaxCtrl
 | 
						|
 | 
						|
The `-h, --hosts` argument was changed to accept a list of hostnames separated
 | 
						|
by commas instead of spaces. This prevents commands from accidentally being
 | 
						|
interpreted as hostnames.
 | 
						|
 | 
						|
## Dropped Features
 | 
						|
 | 
						|
## New Features
 | 
						|
 | 
						|
### MariaDB Monitor
 | 
						|
 | 
						|
MariaDB Monitor can now perform *failover* (replace a dead master), *switchover*
 | 
						|
(replace a running master) and *rejoin* (join a standalone node to the
 | 
						|
master-slave cluster). All of these features only work with a simple 1-master
 | 
						|
N-slaves cluster using Gtid replication. Failover and switchover can be
 | 
						|
activated through maxadmin or the REST-API. Failover and rejoin can be set to
 | 
						|
activate automatically. For more information, see the
 | 
						|
[MariaDB Monitor documentation](../Monitors/MariaDB-Monitor.md).
 | 
						|
 | 
						|
### REST API Relationship Endpoints
 | 
						|
 | 
						|
The _servers_, _monitors_ and _services_ types now support direct updating of
 | 
						|
relationships via the `relationships` endpoints. This conforms to the JSON API
 | 
						|
specification on updating resource relationships.
 | 
						|
 | 
						|
For more information, refer to the REST API documentation. An example of this
 | 
						|
can be found in the
 | 
						|
[Server Resource documentation](../REST-API/Resources-Server.md#update-server-relationships).
 | 
						|
 | 
						|
### PL/SQL Comaptibility
 | 
						|
 | 
						|
The parser of MaxScale has been extended to support the PL/SQL compatibility
 | 
						|
features of the upcoming 10.3 release. For more information on how to enable
 | 
						|
this mode, please refer to the
 | 
						|
[configuration guide](../Getting-Started/Configuration-Guide.md#sql_mode).
 | 
						|
 | 
						|
This functionality was available already in MaxScale 2.2.0.
 | 
						|
 | 
						|
### Environment Variables in the configuration file
 | 
						|
 | 
						|
If the global configuration entry `substitute_variables` is set to true,
 | 
						|
then if the first character of a value in the configuration file is a `$`
 | 
						|
then everything following that is interpreted as an environment variable
 | 
						|
and the configuration value is replaced with the value of the environment
 | 
						|
variable. For more information please consult the
 | 
						|
[Configuration Guide](../Getting-Started/Configuration-Guide.md).
 | 
						|
 | 
						|
### Cache behaviour in transactions
 | 
						|
 | 
						|
It can now be specified how the cache should be behave when a transaction
 | 
						|
is active. Please refer to the [documentation](../Filters/Cache.md)
 | 
						|
for details.
 | 
						|
 | 
						|
## Bug fixes
 | 
						|
 | 
						|
[Here is a list of bugs fixed in MaxScale 2.2.1.](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.2.1)
 | 
						|
 | 
						|
* [MXS-1593](https://jira.mariadb.org/browse/MXS-1593) Servers appearing as Stale out of list servers for a fresh setup
 | 
						|
* [MXS-1588](https://jira.mariadb.org/browse/MXS-1588) Switchover fails randomly
 | 
						|
* [MXS-1582](https://jira.mariadb.org/browse/MXS-1582) Maxscale leaving socket behind after shutdown
 | 
						|
* [MXS-1545](https://jira.mariadb.org/browse/MXS-1545) Fix GTID connecting slave error detections
 | 
						|
* [MXS-1541](https://jira.mariadb.org/browse/MXS-1541) Top filter uses internal ID instead of session ID for file suffix
 | 
						|
* [MXS-1527](https://jira.mariadb.org/browse/MXS-1527) SELECT with session var is not supported
 | 
						|
* [MXS-1525](https://jira.mariadb.org/browse/MXS-1525) Firewall filter does not check exact match for host
 | 
						|
* [MXS-1519](https://jira.mariadb.org/browse/MXS-1519) Firewall instances can interfere with each other
 | 
						|
* [MXS-1517](https://jira.mariadb.org/browse/MXS-1517) Retain stale master status even if the master goes down
 | 
						|
* [MXS-1499](https://jira.mariadb.org/browse/MXS-1499) Add missing fields to SHOW ALL SLAVES STATUS
 | 
						|
* [MXS-1486](https://jira.mariadb.org/browse/MXS-1486) The cache does not always update the cached entry even if it could
 | 
						|
* [MXS-1461](https://jira.mariadb.org/browse/MXS-1461) NOT operation needed for firewall rule
 | 
						|
* [MXS-1408](https://jira.mariadb.org/browse/MXS-1408) maxadmin not working in latest version
 | 
						|
* [MXS-1327](https://jira.mariadb.org/browse/MXS-1327) set   log-priority by  maxadmin
 | 
						|
 | 
						|
## 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).
 |