What's New in MariaDB Enterprise Server 10.5?

MariaDB Enterprise Server 10.5 introduces the new features listed below.

Notable Features

Enterprise ColumnStore Storage Engine

The ColumnStore storage engine is a columnar storage engine that provides distributed, columnar storage for scalable analytical processing and smart transactions.

MariaDB Enterprise Server 10.5 includes an enterprise version of the ColumnStore storage engine as a plugin:

  • It includes MariaDB ColumnStore 1.5, which has many improvements.

  • The installation process has been massively simplified.

  • The multi-node implementation has been completely rebuilt to use a REST API for orchestration.

  • See What's New in MariaDB ColumnStore 1.5? for more details.

Xpand Storage Engine

MariaDB Enterprise Server 10.5 introduces MariaDB Xpand, which offers a new distributed database that provides scalability and high availability.

MariaDB Xpand uses the Xpand storage engine plugin to integrate with MariaDB Enterprise Server.

  • It distributes data across multiple MariaDB Xpand back-end instances.

  • It supports High Availability (HA) and Fault Tolerance by design.

  • It supports horizontal scale-out.

Other Features

Embracing the MariaDB Name

MariaDB Enterprise Server 10.5 uses the "MariaDB" name in more places:

  • It uses MariaDB in many error messages that previously referred to MySQL.

  • It uses DBD::MariaDB for bundled Perl scripts that previously used DBD::mysql.

  • It uses new MariaDB-based names as the primary names for many executables. The old names are still supported for backward compatibility using symbolic links. The new MariaDB-based names were first introduced in MariaDB Enterprise Server 10.4. However, in that version, the old names were still the primary names for the executables, and the new names were supported using symbolic links. See below for the new MariaDB-based names:

    Old Executable Name

    New Executable Name

    mysql

    mariadb

    mysqld

    mariadbd

    mariabackup

    mariadb-backup

    mysql_plugin

    mariadb-plugin

    mysql_upgrade

    mariadb-upgrade

    mysql_waitpid

    mariadb-waitpid

    mysqladmin

    mariadb-admin

    mysqlbinlog

    mariadb-binlog

    mysqlcheck

    mariadb-check

    mysqldump

    mariadb-dump

    mysqlimport

    mariadb-import

    mysqlshow

    mariadb-show

    mysqlslap

    mariadb-slap

    mysql_client_test

    mariadb-client-test

    mysql_client_test_embedded

    mariadb-client-test-embedded

    mysql_config

    mariadb-config

    mysql_convert_table_format

    mariadb-convert-table-format

    mysql_embedded

    mariadb-embedded

    mysql_find_rows

    mariadb-find-rows

    mysql_fix_extensions

    mariadb-fix-extensions

    mysql_install_db

    mariadb-install-db

    mysql_ldb

    mariadb-ldb.

    mysql_secure_installation

    mariadb-secure-installation

    mysql_setpermission

    mariadb-setpermission

    mysql_tzinfo_to_sql

    mariadb-tzinfo-to-sql

    mysql_upgrade_service

    mariadb-upgrade-service

    mysql_upgrade_wizard

    mariadb-upgrade-wizard

    mysqld_multi

    mariadbd-multi

    mysqld_safe

    mariadbd-safe

    mysqld_safe_helper

    mariadbd-safe-helper

    mysqldumpslow

    mariadb-dumpslow

    mysqlhotcopy

    mariadb-hotcopy

    mysqltest

    mariadb-test

    mysqltest_embedded

    mariadb-test-embedded

Packaging

MariaDB Enterprise Server 10.5 includes some packaging improvements:

  • It includes a new mariadb-conv command-line tool to encode/decode MariaDB-encoded file system names.

  • Binary tarball packages have the following changes:

    • Embedded server (libmysqld) has been removed.

    • Debug symbols have been stripped from non-server binaries.

    • The server binary (mariadbd) retains its debug symbols, so that stack traces contain readable function names.

    • Binary tarball size has been reduced from over 1 GB to around 300 MB.

  • It removes the TokuDB storage engine from packages.

  • It removes the Cassandra storage engine from packages.

InnoDB Storage Engine

The InnoDB storage engine is an ACID-compliant storage engine that is very performant and reliable for general purpose transactional workloads.

MariaDB Enterprise Server 10.5 includes many significant improvements to the InnoDB storage engine:

  • It implements a new thread pool for InnoDB background tasks, which allows for InnoDB to use system resources more efficiently.

  • It reduces semaphore contention in several areas to help the system perform better under high concurrency:

    • It reduces semaphore contention when accessing the buffer pool.

    • It removes the ability to configure multiple buffer pool instances, since it does not reduce contention.

    • It reduces semaphore contention when executing DROP TABLE statements.

    • It uses table metadata locks instead of internal InnoDB semaphores for certain background operations.

    • It adds instrumentation that informs the server's thread pool about semaphore waits, so that the thread pool can let other client connections perform work while a client connection is waiting on a semaphore.

  • It improves performance in several areas:

    • It uses a new InnoDB redo log format that is more efficient.

    • It removes the ability to configure multiple InnoDB redo log files, since it does not help performance.

    • It optimizes access to certain InnoDB page header fields.

    • It optimizes how the change buffer is merged.

    • It optimizes how InnoDB scrubs deleted data.

  • It improves stability in several areas:

    • It improves how InnoDB scrubs deleted data by ensuring that scrubbing operations are properly written to the InnoDB redo log.

    • It receives foreign key metadata from the server, rather than relying on an internal SQL parser.

    • It allows prepared XA transactions to be properly recovered after a client disconnects.

  • It allows the number of InnoDB purge threads to be changed dynamically without a server restart. As a consequence, the innodb_purge_threads system variable can be changed dynamically.

  • It allows the InnoDB redo log to be resized dynamically without a server restart. As a consequence, the innodb_log_file_size system variable can be changed dynamically.

  • It allows the number of InnoDB I/O threads to be changed dynamically without a server restart. As a consequence, the innodb_read_io_threads and innodb_write_io_threads system variables can be changed dynamically.

Spider Storage Engine

The Spider storage engine allows you to build complex and powerful distributed databases using federated tables.

MariaDB Enterprise Server 10.5 contains several enhancements for the Spider storage engine:

Aria Storage Engine

The Aria storage engine is a crash-safe storage engine that is incredibly fast for read-only workloads.

MariaDB Enterprise Server 10.5 contains several enhancements for the Aria storage engine:

  • It handles the BACKUP STAGE BLOCK_COMMIT statement by blocking commits to Aria tables, which allows for safer backups with MariaDB Backup.

  • It increases the index length limit for Aria tables from 1000 bytes to 2000 bytes.

S3 Storage Engine

MariaDB Enterprise Server 10.5 contains several enhancements to the S3 storage engine:

  • The S3 storage engine allows tables to be archived in S3-compatible storage.

  • Tables can be archived in S3 by executing ALTER TABLE ... ENGINE=S3.

  • After the table has been archived, it becomes read-only.

  • The S3 storage engine supports partitioning.

  • The S3 storage engine supports replication.

MariaDB Replication

MariaDB Enterprise Server 10.5 improves MariaDB Replication:

  • It allows extended table metadata to be written to the binary log by configuring the binlog_row_metadata system variable.

  • It changes the default parallel replication mode from conservative to optimistic.

  • It renames the REPLICATION CLIENT privilege to BINLOG MONITOR, but it still supports the old name.

  • It allows replication-related operations that previously required the SUPER privilege to the BINLOG MONITOR (formerly REPLICATION CLIENT) and PROCESS privileges:

    Privilege

    Newly Granted Operations

    BINLOG MONITOR (formerly REPLICATION CLIENT)

    PROCESS

MariaDB Enterprise Cluster

MariaDB Enterprise Server 10.5 improves support for Galera Cluster:

  • It allows Galera Cluster to be configured to prohibit DDL replication to only the storage engines that support Galera Cluster by configuring the wsrep_strict_ddl system variable.

  • It adds full GTID support to Galera Cluster.

  • It adds an inconsistency voting protocol to mitigate the harm of inconsistencies by choosing very carefully which inconsistent nodes need to abort.

  • It adds support for non-blocking operations when wsrep_OSU_method is set to NBO, including:

  • It adds a "black box" for Galera troubleshooting. The black box holds debug log messages in memory, which can be analyzed in case of a crash.

  • The default value for gcache.size in wsrep_provider_options has been changed to 1 GB.

Temporal Data

MariaDB Enterprise Server 10.5 improves support for Temporal Data Tables:

  • It allows system-versioned tables that are partitioned on an interval of SYSTEM_TIME to be configured with a specific start date and time, which can make partition management more user-friendly.

  • It allows application-time period tables to be configured to prohibit overlapping time periods.

SQL Functionality

MariaDB Enterprise Server 10.5 improves SQL functionality in several areas:

  • It changes the behavior of the DROP TABLE statement to forcefully drop the table, even if the storage engine can't find the table.

  • It changes the behavior of the ANALYZE TABLE statement, so that it no longer flushes the table definition cache, so that it performs better under concurrency.

  • It changes the behavior of the ANALYZE statement to show the time spent checking the WHERE clause.

  • It adds support for INSERT ... RETURNING statements.

  • It adds support for REPLACE ... RETURNING statements.

  • It adds support for the EXCEPT ALL clause in SELECT statements.

  • It adds support for the INTERSECT ALL clause in SELECT statements.

  • It adds support for the CYCLE clause in common table expressions (CTEs).

  • It adds support for COMMENT option for CREATE DATABASE and ALTER DATABASE statements.

  • It adds support for ALTER TABLE IF EXISTS ....

  • It adds support for ALTER TABLE ... RENAME INDEX.

  • It adds support for ALTER TABLE ... RENAME COLUMN.

  • It adds support for defining foreign keys using REFERENCE clauses in column definitions.

  • It adds support for the VISIBLE option in index definitions, which can be needed to import dumps from MySQL.

  • It adds support for the WITHOUT OVERLAP option in index definitions that are defined for application-time period tables.

  • It adds support for the STARTS option for system-versioned tables that are partitioned on an interval of SYSTEM_TIME.

  • It adds support for the JSON_ARRAYAGG() function.

  • It adds support for the JSON_OBJECTAGG() function.

  • It adds support for the RELEASE_ALL_LOCKS() function.

  • It adds support for the OVERLAPS() function.

  • It adds support for a new Data Type API, so that plugins can define custom data types.

  • It adds support for the INET6 data type, which can be used to represent IPv4 and IPv6 addresses.

  • It changes the way that TIMESTAMP, DATETIME, and TIME columns that use the pre-MariaDB 10.0 format are displayed in the output of SHOW CREATE TABLE and DESCRIBE and in the value of the information_schema.COLUMNS.COLUMN_TYPE column. Columns using the older format will have a comment that says /* mariadb-5.3 */.

Security

MariaDB Enterprise Server 10.5 includes several security improvements:

  • It allows a server to be configured to require secure connections by configuring the require_secure_transport system variable.

    • If this mode is enabled, then all TCP connections must use TLS.

    • Local connections that connect using a Unix socket or a named pipe are also allowed.

  • It adds the CONNECTION_TYPE column to the performance_schema.threads table, which can be used to determine which connections are using TLS.

  • It renames the REPLICATION CLIENT privilege to BINLOG MONITOR, but it still supports the old name.

  • It allows replication-related operations that previously required the SUPER privilege to the BINLOG MONITOR (formerly REPLICATION CLIENT) and PROCESS privileges:

    Privilege

    Newly Granted Operations

    BINLOG MONITOR (formerly REPLICATION CLIENT)

    PROCESS

HashiCorp Vault Encryption Plugin

MariaDB Enterprise Server 10.5 introduces an encryption plugin to support for HashiCorp Vault:

  • It allows HashiCorp Vault to manage encryption keys for data-at-rest encryption.

  • It communicates with the remote KMS using TLS.

  • It supports key rotation.

Information Schema

MariaDB Enterprise Server 10.5 includes several Information Schema improvements:

Thread Pool

MariaDB Enterprise Server 10.5 includes several thread pool improvements:

Protocol

MariaDB Enterprise Server 10.5 includes several protocol improvements:

  • It adds protocol support for the new Data Type API.

  • It adds protocol support for the JSON data type.

  • It adds protocol support for the GEOMETRY data type.

XA Transactions

MariaDB Enterprise Server 10.5 includes some XA transaction improvements:

  • It allows prepared XA transactions to be properly recovered after a client disconnects.

Internals

MariaDB Enterprise Server 10.5 includes some internal improvements:

  • Its internal regular expression library has been upgraded from PCRE to PCRE2.

  • It adds support for a new Data Type API, so that plugins can define custom data types.

For a complete list of changes, see MariaDB Enterprise Server 10.5.4-2 release notes.