What’s New in MariaDB Community Server 10.5?

We are pleased to announce the release of MariaDB Community Server 10.5. Version 10.5 has many enhancements that will provide an improved user experience with faster performance and improved manageability. In this blog, I’ll summarize some of the highlights and provide links to let you know where you can find more information.

Columnar Ubiquity

Earlier versions of MariaDB ColumnStore have been available to the open source community as a separate fork of MariaDB. Now, with MariaDB Community Server 10.5, ColumnStore 1.5 is included as a pluggable storage engine making a columnar storage engine for analytics easily available to MariaDB Community Server users out-of-the-box. With ColumnStore 1.5 on MariaDB Community Server, analytics are easily and freely available to everyone.

For more information about ColumnStore 1.5, read this blog about features in ColumnStore 1.5, this blog about analytics for all, and take a look at the documentation about the new features.

Embracing the MariaDB name

MariaDB Community Server 10.5 marks a big milestone in replacing “mysql” command names with “mariadb” command names. Work on this project began with MariaDB Community Server 10.4 last year to start adding MariaDB named commands. With version 10.5, you will now see mariadb referenced in more places than ever before, including error messages and executables. One example, mysqladmin is now mariadb-admin.

Symbolic links are in place to maintain backward compatibility with the old names and prevent disruption. To see all the new MariaDB command names available in version 10.5, see our documentation. MariaDB has recent innovations such as support for columnar data for analytics, temporal tables for point in time analysis and Oracle compatibility for easy migrations that are not available in MySQL. Enabling these new commands recognizes the path MariaDB is forging.

InnoDB refactor

The InnoDB storage engine in MariaDB includes substantial changes that improve  performance, manageability, and scalability. A list of some of the changes include:

  • Configuration parameters changed or deleted. We’ve eliminated unnecessary parameters and hardwired others. Hardwiring was done where tests showed it would improve performance as in innodb_buffer_pool_instances=1, innodb_log_files_in_group=1, or where the hardwired choice made the most sense, as in innodb_page_cleaners=1 because with only 1 buffer pool instance, only 1 cleaner is needed.
  • Improved the Redo Log record format. Including:
    • Log records for freed pages, which eliminates writing data that has been dropped or deleted
    • Explicitly encoded length, which makes the format easy to parse and minimizes copying
    • Improved validation of logical records for UNDO_APPEND, INSERT, DELETE which improves restore
  • Thread pool for most InnoDB background tasks. Until 10.5 most background tasks used dedicated internal threads. Using a thread pool enables configuring the maximum number of tasks of a kind rather than configuring the number of threads.
  • Buffered changes merged on demand. Buffered changes are now only merged when the affected secondary index page must be read. This eliminates the problematic I/O spikes and random crashes sometimes caused by asynchronous change buffer merges.

For a more detailed look at the changes to the InnoDB storage engine in MariaDB, you can watch this OpenWorks 2020 webinar by Marko Mäkelä, Faster, Better, Stronger, InnoDB in MariaDB 10.5 or take a look at the documentation on new features in MariaDB Community Server 10.5.

Security

We’ve added a number of security features to MariaDB Community Server 10.5. Among the most notable is the new ability to force encryption on data in transit and the addition of new nuanced privileges.

To better support compliance requirements, the new system variable require_secure_transport allows a server to be configured to require secure connections. If this mode is enabled, all TCP connections must use TLS. Local connections that connect using a Unix socket or a named pipe are also allowed.

In the past, users have been granted SUPER in an all-or-nothing manner, but in many cases, such as with machine accounts performing specific functions, the full range of SUPER privileges have not been necessary. In MariaDB Community Server 10.5, we have created 8 subsets to the SUPER privilege to allow granting users the fine-grained privileges necessary to perform administrative tasks without granting full SUPER privileges. Some examples include:

  • BINLOG ADMIN which allows the user to execute PURGE BINARY LOGS statements and to set several binary log-related system variables.
  • READ ONLY ADMIN which allows the user to write data, execute DROP TRIGGER statements, and  execute START TRANSACTION READ WRITE statements even if the read_only system variable is enabled.
  • SET USER which allows the user to set the definer of views, triggers, stored procedures, stored functions, and events and allows the user to view the definer of an object, even if the user account no longer exists.

See MariaDB documentation for a detailed list of all the new privileges which pertain to replication and other administrative functions.

Enhanced SQL

A very small sampling of the SQL enhancements included with MariaDB Community Server 10.5 include:

  • Improved support for temporal tables with support for WITHOUT OVERLAP option for application-time period tables and STARTS option for system-versioned tables that are partitioned on an interval of SYSTEM_TIME.
  • Added support for INSERT ... RETURNING and REPLACE ... RETURNING statements.
  • Added support for a new Data Type API, so that plugins can define custom data types. An IPv6 data type is included to demonstrate this functionality.
  • Added support for ALTER TABLE...RENAME INDEX and  ALTER TABLE...RENAME COLUMN.

See MariaDB documentation for the full list of approximately 20 SQL enhancements and additions in MariaDB Community Server 10.5.

Additional Protocol Support

MariaDB Community Server 10.5 includes several protocol improvements including adding support for the new Data Type API, for the JSON data type, and for the GEOMETRY data type.

More Information

MariaDB Community Server 10.5 is a major, game changing new release that improves performance and expands its capabilities into analytics. Take a look at some other resources below to find out more, or better yet, download MariaDB Community Server 10.5 and give it a try yourself.