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.
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.
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
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.
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_log_files_in_group=1, or where the hardwired choice made the most sense, as in
innodb_page_cleaners=1because 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
DELETEwhich 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.
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 ADMINwhich allows the user to execute
PURGE BINARY LOGSstatements and to set several binary log-related system variables.
READ ONLY ADMINwhich allows the user to write data, execute
DROP TRIGGERstatements, and execute
START TRANSACTION READ WRITEstatements even if the
read_onlysystem variable is enabled.
SET USERwhich 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.
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 OVERLAPoption for application-time period tables and
STARTSoption for system-versioned tables that are partitioned on an interval of SYSTEM_TIME.
- Added support for
INSERT ... RETURNINGand
REPLACE ... RETURNINGstatements.
- 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 INDEXand
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.
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.