diff --git a/maxscale/SUMMARY.md b/maxscale/SUMMARY.md index 17bc4babb..8e403cdb1 100644 --- a/maxscale/SUMMARY.md +++ b/maxscale/SUMMARY.md @@ -125,6 +125,7 @@ * [MaxScale Binlogrouter](reference/maxscale-routers/maxscale-binlogrouter.md) * [MaxScale Cat](reference/maxscale-routers/maxscale-cat.md) * [MaxScale Diff](reference/maxscale-routers/maxscale-diff.md) + * [MaxScale Exasolrouter](reference/maxscale-routers/maxscale-exasolrouter.md) * [MaxScale KafkaCDC](reference/maxscale-routers/maxscale-kafkacdc.md) * [MaxScale KafkaImporter](reference/maxscale-routers/maxscale-kafkaimporter.md) * [MaxScale Mirror](reference/maxscale-routers/maxscale-mirror.md) diff --git a/maxscale/reference/maxscale-monitors/mariadb-monitor.md b/maxscale/reference/maxscale-monitors/mariadb-monitor.md index 18a4dcdf8..30208128c 100644 --- a/maxscale/reference/maxscale-monitors/mariadb-monitor.md +++ b/maxscale/reference/maxscale-monitors/mariadb-monitor.md @@ -1004,6 +1004,20 @@ The monitor does not enable or disable the event scheduler itself. For the event Events running at high frequency may cause replication to break in a failover scenario. If an old primary which was failed over restarts, its event scheduler will be on if set in the server configuration file. Its events will also remember their "ENABLED"-status and run when scheduled. This may happen before the monitor rejoins the server and disables the events. This should only be an issue for events running more often than the monitor interval or events that run immediately after the server has restarted. +#### `check_repl_on_stop_slave_timeout` + +- **Type**: [boolean](../../maxscale-management/deployment/maxscale-configuration-guide.md#booleans) +- **Mandatory**: No +- **Dynamic**: Yes +- **Default**: `false` + +Enables additional checks when a `STOP SLAVE` command times out during a cluster manipulation +operation such as failover or switchover. Normally, if `STOP SLAVE` times out, the monitor just +tries again until time runs out. With this setting enabled, the monitor additionally checks +replication connection status with `SHOW ALL SLAVES STATUS`. If replication has properly ended, the +monitor assumes `STOP SLAVE` completed successfully and continues with the operation. If replication +is still ongoing, the monitor prints the slave thread running states and retries `STOP SLAVE`. + ## Cooperative monitoring As of MaxScale 2.5, MariaDB-Monitor supports cooperative monitoring. This means that multiple monitors (typically in different MaxScale instances) can monitor the same backend server cluster and only one will be the primary monitor. Only the primary monitor may perform _switchover_, _failover_ or _rejoin_ operations. The primary also decides which server is the primary. Cooperative monitoring is enabled with the [cooperative\_monitoring\_locks](mariadb-monitor.md#cooperative_monitoring_locks)-setting. Even with this setting, only one monitor per server per MaxScale is allowed. This limitation can be circumvented by defining multiple copies of a server in the configuration file. diff --git a/maxscale/reference/maxscale-routers/maxscale-exasolrouter.md b/maxscale/reference/maxscale-routers/maxscale-exasolrouter.md new file mode 100644 index 000000000..2dd674758 --- /dev/null +++ b/maxscale/reference/maxscale-routers/maxscale-exasolrouter.md @@ -0,0 +1,217 @@ +# MaxScale ExasolRouter + +{% hint style="info" %} +This functionality is available from MaxScale 25.10.1. +{% endhint %} + +## Overview + +_ExasolRouter_ is a router that in itself is capable of using an Exasol +cluster. It is primarily intended to be used together with +[SmartRouter](maxscale-smartrouter.md), with _writes_ being directed +to a regular MariaDB cluster and _reads_ to Exasol. + +Unlike the other routers of MaxScale, the targets _ExasolRouter_ routes to +are not specified using `servers`, `targets`, or `cluster` entries in +the configuration file. Instead, Exasol database nodes are specified using +the [connection\_string](#connection_string) setting. + +If _ExasolRouter_ is used standalone, a MariaDB server or a service should +be specified using `targets`. _ExasolRouter_ will not route to it, but it +will use it for authenticating clients. However, Exasol will be accessed +on behalf of all clients using the credentials specified in the +[connection\_string](#connection_string). + +## Users + +A `user` and `password` must _always_ be specified, but will only be used +if a MariaDB server/service has been specified as a target, and only for +authenticating a client. + +The user and password to be used when accessing Exasol must be specified +using `UID` and `PWD` in the [connection\_string](#connection_string). + +## Settings + +### `connection_string` + +* Type: string +* Mandatory: Yes +* Dynamic: No + +Specifies the Exasol connection string. + +For example: +``` +connection_string=DSN=ExasolDSN;UID=sys;PWD=exasol;FINGERPRINT=NOCERTCHECK +``` +Here it is assumed there is an `odbc.ini` ODBC configuration file containing +an `ExasolDSN` entry. + +### `appearance` + +* Type: [enum](../../maxscale-management/deployment/maxscale-configuration-guide.md#enumerations) +* Mandatory: No +* Dynamic: No +* Values: `read_only`, `read_write` +* Default: `read_only` + +Specifies how the Exasol router appears to other components of MaxScale. + +**Note** Irrespective of the value, the router does not in any way restrict +what kind of queries can be run through the router. + +### `install_preprocessor_script` + +* Type: [boolean](../../maxscale-management/deployment/maxscale-configuration-guide.md#booleans) +* Mandatory: No +* Dynamic: No +* Default `true` + +Specifies whether the MariaDB preprocessor script should be installed. +With the script installed, some MariaDB SQL constructs will be transparently +translated to equivalent Exasol SQL. + +At the time of this writing, the script looks like +``` +CREATE OR REPLACE PYTHON3 SCALAR SCRIPT UTIL.maria_preprocessor(request VARCHAR(2000000)) +EMITS (translated_sql VARCHAR(2000000)) AS +def adapter_call(request): + import sqlglot + try: + result = sqlglot.transpile( + request, + read='mysql', + write='exasol', + identify=True, + unsupported='ignore' + ) + return str(result[0]) + except Exception: + return request +/ +``` + +See [preprocessor\_script](#preprocessor_script) + +### `preprocessor_script` + +* Type: Path +* Mandatory: No +* Dynamic: No +* Default: "" + +Specifies the location of a file from which the preprocessor script should +be read. With this setting, the built-in default script can be overridden. + +If the path is not _absolute_ it will be interpreted relative to the MaxScale +data directory. + +### `use_preprocessor_script` + +* Type: [boolean](../../maxscale-management/deployment/maxscale-configuration-guide.md#booleans) +* Mandatory: No +* Dynamic: No +* Default: `true` + +Specifies whether the preprocessor script should be used. If `true`, the +session creation will fail unless the script is present. + +## Transformations + +The Exasol Router transparently translates some MariaDB constructs to +equivalent Exasol constructs. + +### `COM_INIT_DB` + +The MariaDB COM_INIT_DB packet, using which the default database is changed, +is transformed into the statement `OPEN SCHEMA `. + +### SQL + +Currently a transformation will be made _only_ if there is an **exact** +match (apart from case and differences in whitespace) with the MariaDb SQL. + +| MariaDb | Exasol | +| ------- | ------- | +| SELECT @@VERSION_COMMENT LIMIT 1 | SELECT 'Exasol' AS '@@version_comment' LIMIT 1 | +| SELECT DATABASE() | SELECT TABLE_NAME AS 'Database()' FROM EXA_ALL_TABLES WHERE TABLE_SCHEMA = CURRENT_SCHEMA | +| SHOW DATABASES | SELECT SCHEMA_NAME AS 'Database' FROM EXA_SCHEMAS ORDER BY SCHEMA_NAME | +| SHOW TABLES | SELECT TABLE_NAME AS 'Tables' FROM SYS.EXA_ALL_TABLES WHERE TABLE_SCHEMA = CURRENT_SCHEMA ORDER BY TABLE_NAME | + +## SmartRouter + +The primary purpose of the Exasol router is to be used together with +[SmartRouter](maxscale-smartrouter.md). A minimal configuration looks +as follows: +``` +[Server1] +type=server +address=127.0.0.1 +port=3306 +protocol=mariadbbackend + +[ExasolService] +type=service +router=exasolrouter +connection_string=DSN=ExasolDSN;UID=sys;PWD=exasol +user= +password= + +[SmartService] +type=service +router=smartrouter +user=MyServiceUser +password=MyServicePassword +targets=Server1, ExasolService +master=Server1 + +[SmartListener] +type=listener +service=SmartService +port=4007 + +``` +Here it is assumed there is an `odbc.ini` ODBC configuration file containing +and `ExasolDSN` entry. + +Note that `user` and `password` must be specified, even if they in this +context are not used. + +With this setup, all writes will always be sent to `Server1`. Reads will initially +be sent to both `Server1` and `ExasolService` and once SmartRouter has learnt what +kind of reads are best sent to which target, it will exclusively send reads to +either `Server1` or `ExasolService` depending on which one is likely to provide +the response faster. + +Here, a single server was used as `master`. It could just as well be a +[ReadWriteSplit](maxscale-readwritesplit.md) service in front of a MariaDB +cluster, which would provide HA. + +## Stand-Alone +A minimal stand-alone configuration looks as follows. + +``` +[Server1] +type=server +address=127.0.0.1 +port=3306 +protocol=mariadbbackend + +[ExasolService] +type=service +router=exasolrouter +connection_string=DSN=ExasolDSN;UID=sys;PWD=exasol;FINGERPRINT=NOCERTCHECK +targets=Server1 +user=MyServiceUser +password=MyServicePassword + +[ExasolListener] +type=listener +service=ExasolService +port=4008 +``` + +With this setup, it is possible to connect using the regular `mariadb` +command line utility to the port 4008 and all queries will be sent to +Exasol. diff --git a/maxscale/reference/maxscale-routers/maxscale-smartrouter.md b/maxscale/reference/maxscale-routers/maxscale-smartrouter.md index 5f6bfe2ac..698c5c315 100644 --- a/maxscale/reference/maxscale-routers/maxscale-smartrouter.md +++ b/maxscale/reference/maxscale-routers/maxscale-smartrouter.md @@ -36,7 +36,7 @@ InnoDB engine. The ReadWriteSplit [documentation](maxscale-readwritesplit.md) has more on primary-replica setup. -**Example** +#### Example Suppose we have a Transactional service like diff --git a/release-notes/SUMMARY.md b/release-notes/SUMMARY.md index cd6b991cf..46f58e84c 100644 --- a/release-notes/SUMMARY.md +++ b/release-notes/SUMMARY.md @@ -1386,12 +1386,14 @@ * [MariaDB MaxScale 25.10 Release Notes](maxscale/25.10/25.10-changelog.md) * [MaxScale 25.10.0 Release Notes](maxscale/25.10/25.10.0.md) * [MariaDB MaxScale 25.01 Release Notes](maxscale/25.01/README.md) + * [MaxScale 25.01.5 Release Notes](maxscale/25.01/25.01.5.md) * [MaxScale 25.01.4 Release Notes](maxscale/25.01/25.01.4.md) * [MaxScale 25.01.3 Release Notes](maxscale/25.01/25.01.3.md) * [MaxScale 25.01.2 Release Notes](maxscale/25.01/25.01.2.md) * [MaxScale 25.01.1 Release Notes](maxscale/25.01/25.01.1.md) * [MaxScale 25.01 Changelog](maxscale/25.01/25.01-changelog.md) * [MariaDB MaxScale 24.02 Release Notes](maxscale/24.02/README.md) + * [MaxScale 24.02.8 Release Notes](maxscale/24.02/24.02.8.md) * [MaxScale 24.02.7 Release Notes](maxscale/24.02/24.02.7.md) * [MaxScale 24.02.6 Release Notes](maxscale/24.02/24.02.6.md) * [MaxScale 24.02.5 Release Notes](maxscale/24.02/24.02.5.md) @@ -1402,6 +1404,7 @@ * [MaxScale 24.02.0 Release Notes](maxscale/24.02/24.02.0.md) * [MaxScale 24.02 Changelog](maxscale/24.02/24.02-changelog.md) * [MariaDB MaxScale 23.08 Release Notes](maxscale/23.08/README.md) + * [MaxScale 23.08.12 Release Notes](maxscale/23.08/23.08.12.md) * [MaxScale 23.08.11 Release Notes](maxscale/23.08/23.08.11.md) * [MaxScale 23.08.10 Release Notes](maxscale/23.08/23.08.10.md) * [MaxScale 23.08.9 Release Notes](maxscale/23.08/23.08.9.md) @@ -1416,6 +1419,7 @@ * [MaxScale 23.08.0 Release Notes](maxscale/23.08/23.08.0.md) * [MaxScale 23.08 Changelog](maxscale/23.08/23.08-changelog.md) * [MariaDB MaxScale 23.02 Release Notes](maxscale/23.02/README.md) + * [MaxScale 23.02.16 Release Notes](maxscale/23.02/23.02.16.md) * [MaxScale 23.02.15 Release Notes](maxscale/23.02/23.02.15.md) * [MaxScale 23.02.14 Release Notes](maxscale/23.02/23.02.14.md) * [MaxScale 23.02.13 Release Notes](maxscale/23.02/23.02.13.md) @@ -1434,6 +1438,7 @@ * [MaxScale 23.02.0 Release Notes](maxscale/23.02/23.02.0.md) * [MaxScale 23.02 Changelog](maxscale/23.02/23.02-changelog.md) * [MariaDB MaxScale 22.08 Release Notes](maxscale/22.08/README.md) + * [MaxScale 22.08.19 Release Notes](maxscale/22.08/22.08.19.md) * [MaxScale 22.08.18 Release Notes](maxscale/22.08/22.08.18.md) * [MaxScale 22.08.17 Release Notes](maxscale/22.08/22.08.17.md) * [MaxScale 22.08.16 Release Notes](maxscale/22.08/22.08.16.md) diff --git a/release-notes/maxscale/22.08/22.08-changelog.md b/release-notes/maxscale/22.08/22.08-changelog.md index 7cd5f6d46..78d8c5b1e 100644 --- a/release-notes/maxscale/22.08/22.08-changelog.md +++ b/release-notes/maxscale/22.08/22.08-changelog.md @@ -28,6 +28,7 @@ For more details, please refer to: +* [MariaDB MaxScale 22.08.19 Release Notes](22.08.19.md) * [MariaDB MaxScale 22.08.18 Release Notes](22.08.18.md) * [MariaDB MaxScale 22.08.17 Release Notes](22.08.17.md) * [MariaDB MaxScale 22.08.16 Release Notes](22.08.16.md) diff --git a/release-notes/maxscale/22.08/22.08.19.md b/release-notes/maxscale/22.08/22.08.19.md new file mode 100644 index 000000000..f960297e4 --- /dev/null +++ b/release-notes/maxscale/22.08/22.08.19.md @@ -0,0 +1,50 @@ +--- +hidden: true +--- + +# MariaDB MaxScale 22.08.19 Release Notes + +Release 22.08.19 is a GA release. + +This document describes the changes in release 22.08.19, when compared to the +previous release in the same series. + +If you are upgrading from an older major version of MaxScale, please read the +[upgrading document](https://app.gitbook.com/s/0pSbu5DcMSW4KwAkUcmX/maxscale-management/deployment/upgrading-maxscale) +for this MaxScale version. + +For any problems you encounter, please consider submitting a bug +report on [our Jira](https://jira.mariadb.org/projects/MXS). + +## Bug fixes + +* [MXS-6013](https://jira.mariadb.org/browse/MXS-6013) SHOW CREATE TABLE doesn't detect if a temporary table is used +* [MXS-5983](https://jira.mariadb.org/browse/MXS-5983) Default users_refresh_interval causes repeated user account loading +* [MXS-5963](https://jira.mariadb.org/browse/MXS-5963) maxctrl create report --archive error reporting produces errors +* [MXS-5954](https://jira.mariadb.org/browse/MXS-5954) kafkacdc doesn't escape db name identifiers resulting in errors +* [MXS-5948](https://jira.mariadb.org/browse/MXS-5948) Database names with dashes are not properly escaped when disabling events +* [MXS-5947](https://jira.mariadb.org/browse/MXS-5947) Fix for MXS-5196 can break "maxctrl create report" +* [MXS-5946](https://jira.mariadb.org/browse/MXS-5946) MaxKeys usage message is obsolete +* [MXS-5717](https://jira.mariadb.org/browse/MXS-5717) Rebuild Replica fails when using MaxScale encrypted password for monitor user + +## Known Issues and Limitations + +There are some limitations and known issues within this version of MaxScale. +For more information, please refer to the +[Limitations](https://app.gitbook.com/s/0pSbu5DcMSW4KwAkUcmX/maxscale-management/mariadb-maxscale-limitations-guide) +document. + +## Packaging + +RPM and Debian packages are provided for the supported Linux distributions. + +Packages can be downloaded [here](https://mariadb.com/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 `maxscale-X.Y.Z`. Further, the default branch is always the latest GA version +of MaxScale. + +The source code is available [here](https://github.com/mariadb-corporation/MaxScale). diff --git a/release-notes/maxscale/23.02/23.02-changelog.md b/release-notes/maxscale/23.02/23.02-changelog.md index cf1270a73..894431c72 100644 --- a/release-notes/maxscale/23.02/23.02-changelog.md +++ b/release-notes/maxscale/23.02/23.02-changelog.md @@ -48,6 +48,7 @@ For more details, please refer to: +* [MariaDB MaxScale 23.02.16 Release Notes](23.02.16.md) * [MariaDB MaxScale 23.02.15 Release Notes](23.02.15.md) * [MariaDB MaxScale 23.02.14 Release Notes](23.02.14.md) * [MariaDB MaxScale 23.02.13 Release Notes](23.02.13.md) diff --git a/release-notes/maxscale/23.02/23.02.16.md b/release-notes/maxscale/23.02/23.02.16.md new file mode 100644 index 000000000..458a841b1 --- /dev/null +++ b/release-notes/maxscale/23.02/23.02.16.md @@ -0,0 +1,51 @@ +--- +hidden: true +--- + +# MariaDB MaxScale 23.02.16 Release Notes + +Release 23.02.16 is a GA release. + +This document describes the changes in release 23.02.16, when compared to the +previous release in the same series. + +If you are upgrading from an older major version of MaxScale, please read the +[upgrading document](https://app.gitbook.com/s/0pSbu5DcMSW4KwAkUcmX/maxscale-management/deployment/upgrading-maxscale) +for this MaxScale version. + +For any problems you encounter, please consider submitting a bug +report on [our Jira](https://jira.mariadb.org/projects/MXS). + +## Bug fixes + +* [MXS-6013](https://jira.mariadb.org/browse/MXS-6013) SHOW CREATE TABLE doesn't detect if a temporary table is used +* [MXS-5983](https://jira.mariadb.org/browse/MXS-5983) Default users_refresh_interval causes repeated user account loading +* [MXS-5963](https://jira.mariadb.org/browse/MXS-5963) maxctrl create report --archive error reporting produces errors +* [MXS-5954](https://jira.mariadb.org/browse/MXS-5954) kafkacdc doesn't escape db name identifiers resulting in errors +* [MXS-5948](https://jira.mariadb.org/browse/MXS-5948) Database names with dashes are not properly escaped when disabling events +* [MXS-5947](https://jira.mariadb.org/browse/MXS-5947) Fix for MXS-5196 can break "maxctrl create report" +* [MXS-5946](https://jira.mariadb.org/browse/MXS-5946) MaxKeys usage message is obsolete +* [MXS-5717](https://jira.mariadb.org/browse/MXS-5717) Rebuild Replica fails when using MaxScale encrypted password for monitor user +* [MXS-5688](https://jira.mariadb.org/browse/MXS-5688) MariaDBMon should not solely depend on "STOP SLAVE" when doing failover/switchover + +## Known Issues and Limitations + +There are some limitations and known issues within this version of MaxScale. +For more information, please refer to the +[Limitations](https://app.gitbook.com/s/0pSbu5DcMSW4KwAkUcmX/maxscale-management/mariadb-maxscale-limitations-guide) +document. + +## Packaging + +RPM and Debian packages are provided for the supported Linux distributions. + +Packages can be downloaded [here](https://mariadb.com/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 `maxscale-X.Y.Z`. Further, the default branch is always the latest GA version +of MaxScale. + +The source code is available [here](https://github.com/mariadb-corporation/MaxScale). diff --git a/release-notes/maxscale/23.08/23.08-changelog.md b/release-notes/maxscale/23.08/23.08-changelog.md index 259bdce14..2cbded941 100644 --- a/release-notes/maxscale/23.08/23.08-changelog.md +++ b/release-notes/maxscale/23.08/23.08-changelog.md @@ -54,6 +54,7 @@ For more details, please refer to: +* [MariaDB MaxScale 23.08.12 Release Notes](23.08.12.md) * [MariaDB MaxScale 23.08.11 Release Notes](23.08.11.md) * [MariaDB MaxScale 23.08.10 Release Notes](23.08.10.md) * [MariaDB MaxScale 23.08.9 Release Notes](23.08.9.md) diff --git a/release-notes/maxscale/23.08/23.08.12.md b/release-notes/maxscale/23.08/23.08.12.md new file mode 100644 index 000000000..81f1e8f13 --- /dev/null +++ b/release-notes/maxscale/23.08/23.08.12.md @@ -0,0 +1,53 @@ +--- +hidden: true +--- + +# MariaDB MaxScale 23.08.12 Release Notes + +Release 23.08.12 is a GA release. + +This document describes the changes in release 23.08.12, when compared to the +previous release in the same series. + +If you are upgrading from an older major version of MaxScale, please read the +[upgrading document](https://app.gitbook.com/s/0pSbu5DcMSW4KwAkUcmX/maxscale-management/deployment/upgrading-maxscale) +for this MaxScale version. + +For any problems you encounter, please consider submitting a bug +report on [our Jira](https://jira.mariadb.org/projects/MXS). + +## Bug fixes + +* [MXS-6031](https://jira.mariadb.org/browse/MXS-6031) No error message if connection to server fails during start of switchover +* [MXS-6013](https://jira.mariadb.org/browse/MXS-6013) SHOW CREATE TABLE doesn't detect if a temporary table is used +* [MXS-6005](https://jira.mariadb.org/browse/MXS-6005) Signal 11 crash +* [MXS-5983](https://jira.mariadb.org/browse/MXS-5983) Default users_refresh_interval causes repeated user account loading +* [MXS-5963](https://jira.mariadb.org/browse/MXS-5963) maxctrl create report --archive error reporting produces errors +* [MXS-5954](https://jira.mariadb.org/browse/MXS-5954) kafkacdc doesn't escape db name identifiers resulting in errors +* [MXS-5948](https://jira.mariadb.org/browse/MXS-5948) Database names with dashes are not properly escaped when disabling events +* [MXS-5947](https://jira.mariadb.org/browse/MXS-5947) Fix for MXS-5196 can break "maxctrl create report" +* [MXS-5946](https://jira.mariadb.org/browse/MXS-5946) MaxKeys usage message is obsolete +* [MXS-5717](https://jira.mariadb.org/browse/MXS-5717) Rebuild Replica fails when using MaxScale encrypted password for monitor user +* [MXS-5688](https://jira.mariadb.org/browse/MXS-5688) MariaDBMon should not solely depend on "STOP SLAVE" when doing failover/switchover + +## Known Issues and Limitations + +There are some limitations and known issues within this version of MaxScale. +For more information, please refer to the +[Limitations](https://app.gitbook.com/s/0pSbu5DcMSW4KwAkUcmX/maxscale-management/mariadb-maxscale-limitations-guide) +document. + +## Packaging + +RPM and Debian packages are provided for the supported Linux distributions. + +Packages can be downloaded [here](https://mariadb.com/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 `maxscale-X.Y.Z`. Further, the default branch is always the latest GA version +of MaxScale. + +The source code is available [here](https://github.com/mariadb-corporation/MaxScale). diff --git a/release-notes/maxscale/24.02/24.02-changelog.md b/release-notes/maxscale/24.02/24.02-changelog.md index 255e7f77a..40dd05f16 100644 --- a/release-notes/maxscale/24.02/24.02-changelog.md +++ b/release-notes/maxscale/24.02/24.02-changelog.md @@ -60,6 +60,9 @@ For more details, please refer to: +* [MariaDB MaxScale 24.02.8 Release Notes](24.02.8.md) +* [MariaDB MaxScale 24.02.7 Release Notes](24.02.7.md) +* [MariaDB MaxScale 24.02.6 Release Notes](24.02.6.md) * [MariaDB MaxScale 24.02.5 Release Notes](24.02.5.md) * [MariaDB MaxScale 24.02.4 Release Notes](24.02.4.md) * [MariaDB MaxScale 24.02.3 Release Notes](24.02.3.md) diff --git a/release-notes/maxscale/24.02/24.02.8.md b/release-notes/maxscale/24.02/24.02.8.md new file mode 100644 index 000000000..16db9d180 --- /dev/null +++ b/release-notes/maxscale/24.02/24.02.8.md @@ -0,0 +1,54 @@ +--- +hidden: true +--- + +# MariaDB MaxScale 24.02.8 Release Notes + +Release 24.02.8 is a GA release. + +This document describes the changes in release 24.02.8, when compared to the +previous release in the same series. + +If you are upgrading from an older major version of MaxScale, please read the +[upgrading document](https://app.gitbook.com/s/0pSbu5DcMSW4KwAkUcmX/maxscale-management/deployment/upgrading-maxscale) +for this MaxScale version. + +For any problems you encounter, please consider submitting a bug +report on [our Jira](https://jira.mariadb.org/projects/MXS). + +## Bug fixes + +* [MXS-6031](https://jira.mariadb.org/browse/MXS-6031) No error message if connection to server fails during start of switchover +* [MXS-6013](https://jira.mariadb.org/browse/MXS-6013) SHOW CREATE TABLE doesn't detect if a temporary table is used +* [MXS-6005](https://jira.mariadb.org/browse/MXS-6005) Signal 11 crash +* [MXS-5983](https://jira.mariadb.org/browse/MXS-5983) Default users_refresh_interval causes repeated user account loading +* [MXS-5963](https://jira.mariadb.org/browse/MXS-5963) maxctrl create report --archive error reporting produces errors +* [MXS-5954](https://jira.mariadb.org/browse/MXS-5954) kafkacdc doesn't escape db name identifiers resulting in errors +* [MXS-5952](https://jira.mariadb.org/browse/MXS-5952) MaxScale failover fails with MASTER_SSL=1 default in MariaDB 11.4 +* [MXS-5948](https://jira.mariadb.org/browse/MXS-5948) Database names with dashes are not properly escaped when disabling events +* [MXS-5947](https://jira.mariadb.org/browse/MXS-5947) Fix for MXS-5196 can break "maxctrl create report" +* [MXS-5946](https://jira.mariadb.org/browse/MXS-5946) MaxKeys usage message is obsolete +* [MXS-5717](https://jira.mariadb.org/browse/MXS-5717) Rebuild Replica fails when using MaxScale encrypted password for monitor user +* [MXS-5688](https://jira.mariadb.org/browse/MXS-5688) MariaDBMon should not solely depend on "STOP SLAVE" when doing failover/switchover + +## Known Issues and Limitations + +There are some limitations and known issues within this version of MaxScale. +For more information, please refer to the +[Limitations](https://app.gitbook.com/s/0pSbu5DcMSW4KwAkUcmX/maxscale-management/mariadb-maxscale-limitations-guide) +document. + +## Packaging + +RPM and Debian packages are provided for the supported Linux distributions. + +Packages can be downloaded [here](https://mariadb.com/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 `maxscale-X.Y.Z`. Further, the default branch is always the latest GA version +of MaxScale. + +The source code is available [here](https://github.com/mariadb-corporation/MaxScale). diff --git a/release-notes/maxscale/25.01/25.01-changelog.md b/release-notes/maxscale/25.01/25.01-changelog.md index 80f1dcba0..cc6605db1 100644 --- a/release-notes/maxscale/25.01/25.01-changelog.md +++ b/release-notes/maxscale/25.01/25.01-changelog.md @@ -48,6 +48,7 @@ For more details, please refer to: +* [MariaDB MaxScale 25.01.5 Release Notes](25.01.5.md) * [MariaDB MaxScale 25.01.4 Release Notes](25.01.4.md) * [MariaDB MaxScale 25.01.3 Release Notes](25.01.3.md) * [MariaDB MaxScale 25.01.2 Release Notes](25.01.2.md) diff --git a/release-notes/maxscale/25.01/25.01.5.md b/release-notes/maxscale/25.01/25.01.5.md new file mode 100644 index 000000000..f817184c9 --- /dev/null +++ b/release-notes/maxscale/25.01/25.01.5.md @@ -0,0 +1,46 @@ +--- +hidden: true +--- + +# MariaDB MaxScale 25.01.5 Release Notes + +Release 25.01.5 is a GA release. + +This document describes the changes in release 25.01.5, when compared to the +previous release in the same series. + +If you are upgrading from an older major version of MaxScale, please read the +[upgrading document](https://app.gitbook.com/s/0pSbu5DcMSW4KwAkUcmX/maxscale-management/deployment/upgrading-maxscale) +for this MaxScale version. + +For any problems you encounter, please consider submitting a bug +report on [our Jira](https://jira.mariadb.org/projects/MXS). + +## Bug fixes + +* [MXS-6031](https://jira.mariadb.org/browse/MXS-6031) No error message if connection to server fails during start of switchover +* [MXS-6013](https://jira.mariadb.org/browse/MXS-6013) SHOW CREATE TABLE doesn't detect if a temporary table is used +* [MXS-6005](https://jira.mariadb.org/browse/MXS-6005) Signal 11 crash +* [MXS-5983](https://jira.mariadb.org/browse/MXS-5983) Default users_refresh_interval causes repeated user account loading +* [MXS-5963](https://jira.mariadb.org/browse/MXS-5963) maxctrl create report --archive error reporting produces errors +* [MXS-5954](https://jira.mariadb.org/browse/MXS-5954) kafkacdc doesn't escape db name identifiers resulting in errors +* [MXS-5952](https://jira.mariadb.org/browse/MXS-5952) MaxScale failover fails with MASTER_SSL=1 default in MariaDB 11.4 +* [MXS-5948](https://jira.mariadb.org/browse/MXS-5948) Database names with dashes are not properly escaped when disabling events +* [MXS-5947](https://jira.mariadb.org/browse/MXS-5947) Fix for MXS-5196 can break "maxctrl create report" +* [MXS-5946](https://jira.mariadb.org/browse/MXS-5946) MaxKeys usage message is obsolete +* [MXS-5717](https://jira.mariadb.org/browse/MXS-5717) Rebuild Replica fails when using MaxScale encrypted password for monitor user +* [MXS-5688](https://jira.mariadb.org/browse/MXS-5688) MariaDBMon should not solely depend on "STOP SLAVE" when doing failover/switchover +* [MXS-5637](https://jira.mariadb.org/browse/MXS-5637) ssl_ciphers-setting does not affect TLSv1.3 ciphers + +## Known Issues and Limitations + +There are some limitations and known issues within this version of MaxScale. +For more information, please refer to the +[Limitations](https://app.gitbook.com/s/0pSbu5DcMSW4KwAkUcmX/maxscale-management/mariadb-maxscale-limitations-guide) +document. + +## Packaging + +RPM and Debian packages are provided for the supported Linux distributions. + +Packages can be downloaded [here](https://mariadb.com/downloads). diff --git a/release-notes/maxscale/all-releases.md b/release-notes/maxscale/all-releases.md index 8742e3f6c..0d7b7a3e1 100644 --- a/release-notes/maxscale/all-releases.md +++ b/release-notes/maxscale/all-releases.md @@ -14,6 +14,7 @@ description: A list of all MariaDB MaxScale releases | Version | Release Date | Release Status | | --------------------------- | ------------ | -------------- | +| [25.01.5](25.01/25.01.5.md) | 2025-12-08 | Stable (GA) | | [25.01.4](25.01/25.01.4.md) | 2025-09-08 | Stable (GA) | | [25.01.3](25.01/25.01.3.md) | 2025-06-25 | Stable (GA) | | [25.01.2](25.01/25.01.2.md) | 2025-03-25 | Stable (GA) | @@ -23,6 +24,7 @@ description: A list of all MariaDB MaxScale releases | Version | Release Date | Release Status | | --------------------------- | ------------ | -------------- | +| [24.02.8](24.02/24.02.8.md) | 2025-12-08 | Stable (GA) | | [24.02.7](24.02/24.02.7.md) | 2025-09-02 | Stable (GA) | | [24.02.6](24.02/24.02.6.md) | 2025-06-07 | Stable (GA) | | [24.02.5](24.02/24.02.5.md) | 2025-03-10 | Stable (GA) | @@ -36,6 +38,7 @@ description: A list of all MariaDB MaxScale releases | Version | Release Date | Release Status | | ----------------------------- | ------------ | -------------- | +| [23.08.12](23.08/23.08.12.md) | 2025-12-08 | Stable (GA) | | [23.08.11](23.08/23.08.11.md) | 2025-09-08 | Stable (GA) | | [23.08.10](23.08/23.08.10.md) | 2025-06-06 | Stable (GA) | | [23.08.9](23.08/23.08.9.md) | 2025-03-07 | Stable (GA) | @@ -53,6 +56,7 @@ description: A list of all MariaDB MaxScale releases | Version | Release Date | Release Status | | ------------------------------------------ | ------------ | -------------- | +| [23.02.16](23.02/23.02.16.md) | 2025-12-08 | Stable (GA) | | [23.02.15](23.02/23.02.15.md) | 2025-09-08 | Stable (GA) | | [23.02.14](23.02/23.02.14.md) | 2025-06-05 | Stable (GA) | | [23.02.13](23.02/23.02.13.md) | 2025-03-07 | Stable (GA) | @@ -65,7 +69,7 @@ description: A list of all MariaDB MaxScale releases | [23.02.5](23.02/23.02.5.md) | 2023-10-28 | Stable (GA) | | [23.02.4](23.02/23.02.4.md) | 2023-08-29 | Stable (GA) | | [23.02.3](23.02/23.02.3.md) | 2023-08-04 | Stable (GA) | -| [23.02.2](../columnstore/23.02/23.02.2.md) | 2023-05-26 | Stable (GA) | +| [23.02.2](23.02/23.02.2.md) | 2023-05-26 | Stable (GA) | | [23.02.1](23.02/23.02.1.md) | 2023-03-15 | Stable (GA) | | [23.02.0](23.02/23.02.0.md) | 2023-02-22 | Stable (GA) | @@ -73,6 +77,7 @@ description: A list of all MariaDB MaxScale releases | Version | Release Date | Release Status | | ----------------------------- | ------------ | -------------- | +| [22.08.19](22.08/22.08.19.md) | 2025-12-08 | Stable (GA) | | [22.08.18](22.08/22.08.18.md) | 2025-09-08 | Stable (GA) | | [22.08.17](22.08/22.08.17.md) | 2025-06-04 | Stable (GA) | | [22.08.16](22.08/22.08.16.md) | 2025-03-05 | Stable (GA) | diff --git a/release-notes/maxscale/script/generate_release_notes.sh b/release-notes/maxscale/script/generate_release_notes.sh new file mode 100755 index 000000000..d138eb22d --- /dev/null +++ b/release-notes/maxscale/script/generate_release_notes.sh @@ -0,0 +1,86 @@ +#!/bin/bash + +if [ "$1" == "" ] +then + echo "usage: $0 major.minor.patch [maturity]" + exit 1 +fi + +VERSION=$1 + +patch=${VERSION##*.} +major_minor=${VERSION%.*} +major=${major_minor%%.*} +minor=${major_minor##*.} + +if [ "$2" == "" ] +then + echo "No maturity specified, assuming GA." + maturity="GA" +else + maturity=$2 +fi + +if [ ! -d "$major_minor" ] +then + echo "error: $major_minor does not exist or is not a directory." + exit 1 +fi + +# Script location +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +output=$major.$minor/$VERSION.md + +echo Creating/overwriting $output. +echo + +# For version 6, this is just the major version. For other versions, it +# is $major.$minor. Needs to be updated whenever a new major release is +# out or if the versioning scheme for MaxScale changes. +upgrade_version="$major.$minor" + +cat < $output +# MariaDB MaxScale ${VERSION} Release Notes + +Release ${VERSION} is a ${maturity} release. + +This document describes the changes in release ${VERSION}, when compared to the +previous release in the same series. + +If you are upgrading from an older major version of MaxScale, please read the +[upgrading document](https://app.gitbook.com/s/0pSbu5DcMSW4KwAkUcmX/maxscale-management/deployment/upgrading-maxscale) +for this MaxScale version. + +For any problems you encounter, please consider submitting a bug +report on [our Jira](https://jira.mariadb.org/projects/MXS). + +`${SCRIPT_DIR}/list_fixed.sh ${VERSION}` + +## Known Issues and Limitations + +There are some limitations and known issues within this version of MaxScale. +For more information, please refer to the +[Limitations](https://app.gitbook.com/s/0pSbu5DcMSW4KwAkUcmX/maxscale-management/mariadb-maxscale-limitations-guide) +document. + +## Packaging + +RPM and Debian packages are provided for the supported Linux distributions. + +Packages can be downloaded [here](https://mariadb.com/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 \`maxscale-X.Y.Z\`. Further, the default branch is always the latest GA version +of MaxScale. + +The source code is available [here](https://github.com/mariadb-corporation/MaxScale). +EOF + +echo Manually update the following files: +echo - $major.$minor/$major.$minor-changelog.md +echo - ./all-releases.md +echo - ../SUMMARY.md. diff --git a/release-notes/maxscale/script/list_fixed.sh b/release-notes/maxscale/script/list_fixed.sh new file mode 100755 index 000000000..72d9e4858 --- /dev/null +++ b/release-notes/maxscale/script/list_fixed.sh @@ -0,0 +1,14 @@ +#!/bin/bash + + +if [ $# -ne 1 ] +then + echo "USAGE: $0 VERSION" + exit 1 +fi + +# Script location +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +version=$1 +curl -s "https://jira.mariadb.org/sr/jira.issueviews:searchrequest-csv-all-fields/temp/SearchRequest.csv?jqlQuery=project+%3D+MXS+AND+status+%3D+Closed+AND+fixVersion+%3D+$version" | $DIR/process.py diff --git a/release-notes/maxscale/script/process.py b/release-notes/maxscale/script/process.py new file mode 100755 index 000000000..cb350b30d --- /dev/null +++ b/release-notes/maxscale/script/process.py @@ -0,0 +1,88 @@ +#!/usr/bin/env python3 + +import sys +import csv +import itertools + +# Loop over issues. If an issue has a label that starts with 'CVE-', +# assume the label is a CVE id. If an issue has multiple CVE labels, +# the issue will be added multiple times (by design). +# +def find_cves(issues): + cves=[] + + for i in issues: + labels_field = i.get('Labels') + if labels_field: + labels=labels_field.split(',') + for label in labels: + if label[0:4].upper() == 'CVE-': + cve = {}; + cve['Id'] = label + cve['Issue'] = i + cves.append(cve) + + return cves + +def print_cves(header, cves): + print(header) + print() + + for cve in cves: + id = cve['Id'] + i = cve['Issue'] + print("* [" + id + "](https://www.cve.org/CVERecord?id=" + id + ") Fixed by [" + i['Issue key'] + "](https://jira.mariadb.org/browse/" + i['Issue key'] + ") " + i['Summary']) + + print() + + +bugs = [] +new_features = [] +tasks = [] + +reader = csv.reader(sys.stdin.readlines()) +field_names = next(reader) + +for row in reader: + # In case there are multiple values of a particular field, collect + # all values separated by a ','. + groups = itertools.groupby(zip(field_names, row), key=lambda x: x[0]) + row = dict([(k, ','.join([v[1] for v in g])) for k, g in groups]) + + if row['Issue Type'] == 'Bug': + bugs.append(row) + elif row['Issue Type'] == 'New Feature': + new_features.append(row) + elif row['Issue Type'] == 'Task': + tasks.append(row) + +# Check if some bug-fix fixes a CVE. These are assumed to be CVEs of MaxScale. +cves = find_cves(bugs) + +if len(cves) > 0: + print_cves("## CVEs resolved.", cves) + +# If there are tasks, check if any of them fixes a CVE, which is assumed +# to be a non-MaxScale one; e.g. a CVE of an external library. +if len(tasks) > 0: + cves = find_cves(tasks) + + if len(cves) > 0: + print_cves("## External CVEs resolved.", cves) + +if len(new_features) > 0: + print("## New Features") + print() + + for f in new_features: + print("* [" + f['Issue key'] + "](https://jira.mariadb.org/browse/" + f['Issue key'] + ") " + f['Summary']) + print() + + +print("## Bug fixes") +print() + +for b in bugs: + print("* [" + b['Issue key'] + "](https://jira.mariadb.org/browse/" + b['Issue key'] + ") " + b['Summary']) + +print()