Release Notes for MariaDB MaxScale 6.4.9

Overview

MariaDB MaxScale is an advanced database proxy and query router.

MariaDB MaxScale 6.4.9 was released on 2023-08-21. This release is of General Availability (GA) maturity.

This document describes the changes in MaxScale 6.4.9 when compared to MaxScale 6.4.8.

Notable Changes

  • force_connection_keepalive parameter added, with default value false. (MXS-4720)

    • When force_connection_keepalive=false (the default), connection keepalive pings are sent only if the client is executing a query or has been idle for less than the duration configured in connection_keepalive

    • When force_connection_keepalive=true, keepalive pings are sent unconditionally to any backends that have been idle for longer than connection_keepalive seconds. This option can be used to emulate MaxScale's behavior prior to version 2.5.21 for cases where long-lived application connections rely on the old unconditional keepalive pings.

    • When force_connection_keepalive=true and connection_keepalive in MaxScale is set to a lower value than wait_timeout on the database, the timeouts controlled by wait_timeout will no longer be effective. In this circumstance, MaxScale unconditionally sends pings which make the client behave like it is not idle, so the connections will not be killed by wait_timeout.

  • For MariaDB Monitor (mariadbmon), GRANT guidance has changed: (MXS-4672)

    • For complete instructions, see MariaDB Monitor.

    • For MariaDB Server 10.5.2 and above, it is recommended that CONNECTION ADMIN privilege be granted, since it allows the monitor to log in even if the server connection limit has been reached.

      GRANT CONNECTION ADMIN ON *.* TO 'maxscale'@'maxscalehost';
      
    • Certain privileges are required if performing cluster management operations. For MariaDB Server 11.0.1 and above, the SUPER privilege no longer conveys certain fine-grained privileges, so these must be granted directly.

      GRANT RELOAD, PROCESS, SHOW DATABASES, EVENT, SET USER, READ_ONLY ADMIN
        ON *.* TO 'maxscale'@'maxscalehost';
      GRANT REPLICATION SLAVE ADMIN, BINLOG ADMIN, CONNECTION ADMIN
        ON *.* TO 'maxscale'@'maxscalehost';
      GRANT SELECT ON mysql.user TO 'maxscale'@'maxscalehost';
      

      Privilege

      Purpose

      BINLOG ADMIN

      Delete binary logs (during reset-replication)

      CONNECTION ADMIN

      Kill connections

      EVENT

      List and modify server events

      PROCESS

      Allows check whether the event_scheduler process is running

      READ_ONLY ADMIN

      Allows read_only to be set

      RELOAD

      Flush binary logs

      REPLICA MONITOR

      View and manage replication connections

      REPLICATION SLAVE ADMIN

      View and manage replication connections

      SELECT on mysql.user

      View which users have SUPER

      SET USER

      List and modify server events

      SHOW DATABASES

      List and modify server events

    • If a separate replication user is defined (with replication_user and replication_password), REPLICATION SLAVE privilege is required.

      CREATE USER 'replication'@'replicationhost'
        IDENTIFIED BY 'replication-password';
      GRANT REPLICATION SLAVE ON *.* TO 'replication'@'replicationhost';
      

Issues Fixed

Can result in data loss

Can result in a hang or crash

  • With Binlog Router (binlogrouter), if the transaction being replicated does not fit in memory, the process will be killed or a std::bad_alloc will be thrown. (MXS-4690)

  • With mariadbclient, possible hang when connection_init_sql_file queries are executed. (MXS-4719)

Can result in unexpected behavior

  • Encrypted passwords can be persisted in plain-text. (MXS-4681)

  • With Binlog Router (binlogrouter), GTID values are compared as 32-bit integers rather than 64-bit integers. (MXS-4700)

  • With Binlog Router (binlogrouter), a new binlog is always opened upon startup. (MXS-4695)

  • With Galera Monitor (galeramon), replication lag is not updated for replicating servers. (MXS-4721)

  • With MariaDB Monitor (mariadbmon), switchover can fail with an Unknown thread id error (1094). (MXS-4675)

  • With MariaDB Monitor (mariadbmon), GTID updates may block REST API traffic. (MXS-4701)

  • With MariaDB Monitor (mariadbmon), ALTER EVENT failure is not detected on MariaDB 11.0 and above. (MXS-4684)

  • The query classifier does not correctly parse a RENAME statement. (MXS-4714)

  • With Read/Write Split Router (readwritesplit), interrupted queries are retried even if all backends have encountered a permanent failure. (MXS-4696)

    • Starting with this release, retries are not performed if all backends have encountered a permanent failure, resulting in faster reporting of errors to the client.

  • With the query classifier, SHOW TABLE STATUS FROM ... fails with Schema Router (schemarouter). (MXS-4704)

  • With the MaxScale REST API, session idle times are calculated incorrectly. (MXS-4680)

    • In previous releases, the REST API calculated the session idle time by checking the amount of time since the last network read.

    • Starting with this release, the REST API calculates the session idle time by checking the amount of time since the session became logically idle. Consequently, if a session executes a query that takes a long time to complete, the session idle time value will remain at zero until the query is fully complete.

  • When SHOW SLAVE STATUS is executed with Binlog Router (binlogrouter), the output is not consistent with the output shown when executed with MariaDB Server. (MXS-4613)

    • In previous releases, the output showed the MaxScale node's latest local log file and position in the Master_Log_File and Read_Master_Log_Pos columns, and the output showed empty strings in the Relay_Log_File and Relay_Log_Pos columns.

    • Starting with this release, the output shows the latest log file and position replicated from the primary server in the Master_Log_File and Read_Master_Log_Pos columns, and the output shows the MaxScale node's latest local log file and position in the Relay_Log_File and Relay_Log_Pos columns.

Supplemental Notes

Platforms

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

  • CentOS 7 (x86_64)

  • Debian 10 (x86_64, ARM64)

  • Debian 11 (x86_64, ARM64)

  • Debian 12 (x86_64, ARM64)

  • Red Hat Enterprise Linux 7 (x86_64)

  • Red Hat Enterprise Linux 8 (x86_64, ARM64)

  • Red Hat Enterprise Linux 9 (x86_64, ARM64)

  • Rocky Linux 8 (x86_64, ARM64)

  • Rocky Linux 9 (x86_64, ARM64)

  • SUSE Linux Enterprise Server 15 (x86_64, ARM64)

  • Ubuntu 20.04 (x86_64, ARM64)

  • Ubuntu 22.04 (x86_64, ARM64)