Merge branch '2.2' into 2.2-mrm

This commit is contained in:
Markus Mäkelä
2017-10-03 14:52:21 +03:00
53 changed files with 1039 additions and 668 deletions

View File

@ -78,16 +78,13 @@ transaction or change the autocommit mode using a prepared statement.
* Compression is not included in the MySQL server handshake.
* MariaDB MaxScale will intercept `KILL <thread_id>` statements which are of the
form `KILL 3`, `KILL CONNECTION 321` and `KILL QUERY 8`. These queries are not
routed to backends because the `<thread_id>` sent by the client does not equal a
backend id. MaxScale reacts to a thread kill command by killing the session with
the given id if the user and host of the issuing session and the target session
match. Query kill command is not supported and results in an error message. For
MaxScale to recognize the *KILL* statement, the statement must start right after
the command byte, have no comments and have minimal whitespace. These
limitations are in place to limit the parsing MaxScale needs to do to every
query.
* MariaDB MaxScale does not support `KILL QUERY ID <query_id>` type
statements. If a query by a query ID is to be killed, it needs to be done
directly on the backend databases.
* The `KILL` commands are executed asynchronously and the results are
ignored. Due to this, they will always appear to succeed even if the user is
lacking the permissions.
## Authenticator limitations

View File

@ -196,6 +196,24 @@ write or modify the data in the backend server. The default is 2 seconds.
auth_write_timeout=10
```
#### `query_retries`
The number of times an interrupted query will be retried. This feature was added
in MaxScale 2.1.10 and is disabled by default.
An interrupted query is any query that is interrupted by a network
error. Connection timeouts are included in network errors and thus is it
advisable to make sure that the value of `query_retry_timeout` is set to an
adequate value.
#### `query_retry_timeout`
The total timeout in seconds for any retried queries. The default value is 5
seconds.
An interrupted query is retried for either the configured amount of attempts or
until the configured timeout is reached.
#### `passive`
Controls whether MaxScale is a passive node in a cluster of multiple MaxScale

View File

@ -22,6 +22,20 @@ release notes:
For any problems you encounter, please consider submitting a bug report at
[Jira](https://jira.mariadb.org).
## Changed Features
### Internal Query Retries
The internal SQL queries that MaxScale executes to load database users as well
as monitor the database itself can now be automatically retried if they are
interrupted. The new global parameter, `query_retries` controls the number of
retry attempts each query will receive if it fails due to a network problem.
The `query_retry_timeout` global parameter controls the total timeout for the
retries.
To enable this functionality, add `query_retries=<number-of-retries>` under the
`[maxscale]` section where _<number-of-retries>_ is a positive integer.
## Bug fixes
[Here is a list of bugs fixed in MaxScale 2.1.10.](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.1.10)

View File

@ -197,10 +197,14 @@ to the server. For more information, see the server section in the
### KILL command support
The MySQL client protocol now detects `KILL <thread_id>` statements (binary and
query forms) and kills the MaxScale session with the given id. This feature has
some limitations, see [Limitations](../About/Limitations.md) for more
information.
The MySQL client protocol now supports execution of `KILL` statements through
MaxScale. The connection IDs in these queries will be transformed into the
correct ones by MaxScale.
`KILL QUERY ID <query_id>` is not supported by MaxScale and it needs to be
executed directly on the relevant backend server. In addition to this, there are
minor limitations to the `KILL` command handling. See
[Limitations](../About/Limitations.md) for more information.
### New `uses_function` rule for dbfwfilter