Release Notes for MariaDB MaxScale 6.2.0

Overview

MariaDB MaxScale is an advanced database proxy, firewall, and query router.

MariaDB MaxScale 6.2.0 was released on 2021-11-26. This release is of General Availability (GA) maturity.

New Features

MaxGUI

  • Adds a multi-tab query editor (MXS-3638)

  • Adds a right-click context menu to schema tree (MXS-3632)

  • Adds a DDL editor (MXS-3634)

  • Adds functionality to reconnect when a connection encounters errors (MXS-3838)

  • Adds ability to open multiple active SQL connections (MXS-3681)

  • Adds drag-and-drop functionality for quicker access to "Place Schema in Editor" (MXS-3635)

  • Adds ability to filter results by specific columns (MXS-3636)

  • Adds a view that shows history/favorite queries (MXS-3675)

  • Shows the status of replica servers (MXS-3659)

  • Shows stored procedures and triggers in the schema tree (MXS-3639)

MaxCtrl

  • Adds a list queries command that lists all active queries, similar to SHOW PROCESSLIST in MariaDB Server (MXS-3037)

  • Changes the output of show threads to be more readable (MXS-3672)

REST API

  • Adds reconnect functionality to SQL API (MXS-3834)

  • Adds ability to open multiple active SQL connections (MXS-3680)

  • Adds a counter of failed authentication attempts for servers and services using the new failed_auths field (MXS-3453)

Filters

  • Most filters can be reconfigured at runtime (MXS-3594)

  • Hint Filter (hintfilter) supports direct execution of prepared statements (PS) (MXS-3813)

  • Tee Filter (tee) can operate in a synchronous mode when the sync parameter is enabled (MXS-3363)

  • Masking Filter (masking) can be reconfigured at runtime (MXS-3709)

  • Named Server Filter (namedserverfilter):

    • Handles prepared statements (PS) (MXS-2074)

    • Can be reconfigured at runtime (MXS-3710)

  • Query Log All Filter (qlafilter):

    • Can log the canonical form of a query when the use_canonical_form parameter is enabled (MXS-3701)

    • Logs the number of rows in a result set (MXS-3771)

    • Logs transaction-related details previously logged by the Transaction Performance Monitoring Filter (tpmfilter) (MXS-3645)

    • Can be reconfigured at runtime (MXS-3711)

    • Logs several new output fields:

      • num_rows: Number of rows in result set

      • reply_size: Number of bytes received from the server

      • transaction: BEGIN, COMMIT, and ROLLBACK

      • transaction_time: The duration of a transaction

      • num_warnings: Number of warnings in the server reply

      • error_msg: Error message from the server (if any)

MariaDB Monitor (mariadbmon)

  • Clears existing replication sources on rejoin when enforce_simple_topology is enabled (MXS-3755)

MariaDB Protocol

  • Adds the ability to read client user accounts from a file and map them to backend users when the user_accounts_file parameter is set for a service or listener

  • Adds support for the DEPRECATE_EOF flag, which improves session tracking capabilities (MXS-1892)

  • Adds support for the MARIADB_CLIENT_CACHE_METADATA flag, which allows metadata to be skipped for prepared statements (PS) (MXS-3613)

  • Automatically installs MariaDB Connector/C authentication plugins and sets the connector_plugindir parameter (MXS-3770)

Authenticators

  • GSSAPI Authenticator (GSSAPIAuth) adds the gssapi_keytab_path authenticator option to set the path to the keytab file (MXS-3733)

  • PAM Authenticator (PAMAuth):

    • Adds support for group mapping (MXS-3475)

    • Adds the pam_mapped_pw_file authenticator option to configure a file path used to store mapped user names and passwords. Only applies when pam_backend_mapping=mariadb is set

Other Changes

Issues Fixed

Can result in a hang or crash

  • Binlog Router (binlogrouter) causes crash (MXS-3815)

  • Cache Filter (cache) causes crash (MXS-3778)

  • Kafka Importer (kafkaimporter) causes crash when no servers are available (MXS-3736)

  • Crash on object type change with config_sync_cluster (MXS-3717)

  • Race condition in GCUpdater shutdown can rarely lead to hang (MXS-3793)

Can result in unexpected behavior

  • MaxGUI:

    • Timeout for connection dialog in the GUI is not parsed as number (MXS-3835)

    • Query editor timeout is too aggressive (MXS-3833)

    • Error is raised when /usr/share/maxscale/gui path contains symbolic links (MXS-3824)

  • MaxCtrl:

    • The create server command doesn't allow custom parameters (MXS-3878)

    • Unable to configure nested parameters (MXS-3849)

    • Inconsistent parameter format for commands (MXS-3690)

    • Listener module parameters are not supported (MXS-3688)

    • Passing options in interactive mode returns an empty error (MXS-3308)

  • NoSQL Listener (nosqlprotocol):

    • Doesn't start TLS session (MXS-3685)

    • Parameters are not serialized correctly when written to disk (MXS-3883)

  • Avro Router (avrorouter) does not store full GTID coordinates (MXS-3580)

  • Read/Write Split Router (readwritesplit):

    • Kills connection to server when LOAD DATA INFILE is executed and transaction_replay is enabled (MXS-3881)

    • Bias value for open connections is too large (MXS-3880)

    • Execution of prepared statement (PS) fails when strict_sp_calls is enabled (MXS-3458)

  • Schema Router (schemarouter):

    • Does not ignore sys schema (MXS-3876)

    • refresh_databases parameter does nothing (MXS-3836)

  • Binlog Router (binlogrouter):

    • Incorrectly reads entire files during initial GTID scan (MXS-3857)

    • Sending binlog events is inefficient (MXS-3845)

    • rpl_state file is empty (MXS-3814)

  • Some monitors do not log enough information when server state changes (MXS-3800)

  • MariaDB Monitor (mariadbmon): (MXS-3809)

    • When MariaDB Monitor acquires lock majority, the log message gives the impression that auto_failover is enabled even when it is not configured

  • Masking Filter (masking) blocks ALTER TABLE statements (MXS-2992)

  • Tee Filter (tee) loses statements if branch target is slower (MXS-3353)

  • Query Log All Filter (qlafilter):

    • Logs messages with inconsistent timing (MXS-3772)

    • append parameter does not default to true when using log_type=unified (MXS-3359)

  • idle_session_pool_time=0s doesn't immediately pool idle connections (MXS-3730)

  • idle_session_pool_time should support prepared statements (MXS-3720)

  • Protocol module configurations are not persisted (MXS-3689)

  • Lack of nested parameters is not detected (MXS-3687)

  • Object names with characters outside of the ASCII range are not rejected (MXS-3686)

  • Cached user account details are not updated when login fails (MXS-3630)

  • Node hostname used for config_sync_cluster is not escaped properly (MXS-3847)

  • Configuration change detection with config_sync_cluster is inadequate (MXS-3618)

Interface Changes

  • list queries maxctrl utility added

  • maxctrl list queries --max-length command-line option added

  • Protocol.MariaDBProtocol type module parameter removed

  • Protocol.MariaDBProtocol user_mapping_file module parameter added

  • Router.readconnroute user_accounts_file module parameter added

  • Router.readconnroute user_accounts_file_usage module parameter added

  • Router.readwritesplit user_accounts_file module parameter added

  • Router.readwritesplit user_accounts_file_usage module parameter added

Platforms

In alignment to the MariaDB Corporation Engineering Policy, MariaDB MaxScale 6.2.0 is provided for:

  • CentOS 7

  • CentOS 8

  • Debian 9

  • Debian 10

  • Red Hat Enterprise Linux 7

  • Red Hat Enterprise Linux 8

  • SUSE Linux Enterprise Server 12

  • SUSE Linux Enterprise Server 15

  • Ubuntu 18.04

  • Ubuntu 20.04