New Backported Features Available in MariaDB Enterprise Server Releases 10.4-10.6

New maintenance releases for MariaDB Enterprise Server 10.6.15-10, 10.5.22-16 and 10.4.31-21 are now available.

Download Now

Backported Features

New JSON Features have been backported from MariaDB Community Server to MariaDB Enterprise Server 10.4, 10.5 and 10.6 after reaching maturity in MariaDB Community Server.

  • The new JSON function JSON_SCHEMA_VALID() can be used to validate a JSON document against a JSON schema, as documented by the JSON Schema Draft 2020. This function can also be used in a CHECK constraint to verify that only JSON documents are stored in the database which include required items and that the values are within a given range, length, etcetera.
 
SET @schema= '{
  "properties" : {
    "lastname":{ "type":"string"},
    "age":{ "type":"number","minimum":18 }
  },
  "required" : ["lastname"]
}';

SELECT JSON_SCHEMA_VALID(@schema, '{ "age":25, "lastname":"Miller" }') as is_valid;
+----------+
| is_valid |
+----------+
|        1 |
+----------+

SELECT JSON_SCHEMA_VALID(@schema, '{ "age":10, "lastname":"Miller" }') as wrong_age;
+-----------+
| wrong_age |
+-----------+
|         0 |
+-----------+

SELECT JSON_SCHEMA_VALID(@schema, '{ "age":25 }') as lastname_missing;
+------------------+
| lastname_missing |
+------------------+
|                0 |
+------------------+
  • The new JSON_OVERLAPS() function, which compares JSON documents to determine if they have any key-value pairs or array elements in common.
SELECT JSON_OVERLAPS('{"A": 1, "B": {"C":2}}', '{"A": 2, "B": {"C":2}}') AS is_overlap;
+---------------------+
| is_overlap          |
+---------------------+
| 1                   |
+---------------------+

 

Other Notable Release Updates

We have several other maintenance items included in these releases

MARIADB ENTERPRISE SERVER 10.6.15-10

Detailed MariaDB Enterprise Server 10.6.15-10 Release Notes

  • The package for the cracklib_password_check plugin includes an SELinux policy, allowing the plugin to work with SELinux.
  • MariaDB Enterprise Backup reports detailed recovery progress during mariabackup --prepare.
  • With Optimizer Trace, a sel_arg_alloc_limit_hit record is written when MAX_SEL_ARGS is reached.
    • MAX_SEL_ARGS is one of the limits in the optimizer that triggers short-cut of time-intensive or memory-intensive analysis for complex WHERE clauses.
      For example:
 
SELECT
JSON_DETAILED(JSON_EXTRACT(trace, '$**.setup_range_conditions'))
FROM information_schema.OPTIMIZER_TRACE;

[
   [
       {
         "sel_arg_alloc_limit_hit":
         {
          "alloced_sel_args": 16001
         }
       }
   ]
]
  • ANALYZE FORMAT=JSON output includes InnoDB statistics.
    For example:
"table": {
"table_name": "t1",
...
"r_engine_stats": {
"pages_accessed": integer,
"pages_updated" : integer,
"pages_read_count" : integer,
"pages_read_time_ms" : double_val,
"old_rows_read" : integer,
},
  • Slow query log output includes InnoDB engine information.
    • InnoDB engine information output is enabled with --log-slow-verbosity=innodb
      Sample output:
# Pages_accessed: 184  Pages_read: 95  Pages_updated: 0  Undo_rows_read: 1
# Pages_read_tim e: 17.0204  Engine_time: 248.1297
    • Engine_time is the time in milliseconds spent inside engine calls.
    • Page_* variables are supported for the InnoDB storage engine.
  • For the Spider storage engine, the default values and behavior of some system variables has changed:
    • Prior to this release:
      • These variables used a value of -1 (the default) to indicate that Spider would use the default table value, and this value was not user visible.
      • Spider table parameters could set values, but these values would be overridden with the system variable value if the system variable was set to a value other than -1.
    • Starting with this release:
      • The default value for these system variables has been updated to reflect the actual default table value, rather than -1.
      • Where a value is set by a table parameter, this value overrides the system default and the value set by Spider system variable.
      • If a table parameter is not set, the Spider system variable’s value is used. This behavior is unchanged.
    • See “Interface Changes” for a full list of updated default values.

 

MARIADB ENTERPRISE SERVER 10.5.22-16

Detailed MariaDB Enterprise Server 10.5.22-16 Release Notes

  • The package for the cracklib_password_check plugin includes an SELinux policy, allowing the plugin to work with SELinux.
  • With Optimizer Trace, a sel_arg_alloc_limit_hit record is written when MAX_SEL_ARGS is reached.
    • MAX_SEL_ARGS is one of the limits in the optimizer that triggers short-cut of time-intensive or memory-intensive analysis for complex WHERE clauses.
      For example:
SELECT
JSON_DETAILED(JSON_EXTRACT(trace, '$**.setup_range_conditions'))
FROM information_schema.OPTIMIZER_TRACE;

[
   [
      {
        "sel_arg_alloc_limit_hit":
        {
        "alloced_sel_args": 16001
        }
      }
   ]
]
  • ANALYZE FORMAT=JSON output includes InnoDB statistics.
    For example:
"table": {
   "table_name": "t1",
   ...
   "r_engine_stats": {
     "pages_accessed": integer,
     "pages_updated" : integer,
     "pages_read_count" : integer,
     "pages_read_time_ms" : double_val,
     "old_rows_read" : integer,
   },
  • Slow query log output includes InnoDB engine information.
    • InnoDB engine information output is enabled with --log-slow-verbosity=innodb
      Sample output:
# Pages_accessed: 184  Pages_read: 95  Pages_updated: 0  Undo_rows_read: 1
# Pages_read_tim e: 17.0204  Engine_time: 248.1297
    • Engine_time is the time in milliseconds spent inside engine calls.
    • Page_* variables are supported for the InnoDB storage engine.
  • For the Spider storage engine, the default values and behavior of some system variables has changed:
    • Prior to this release:
      • These variables used a value of -1 (the default) to indicate that Spider would use the default table value, and this value was not user visible.
      • Spider table parameters could set values, but these values would be overridden with the system variable value if the system variable was set to a value other than -1.
    • Starting with this release:
      • The default value for these system variables has been updated to reflect the actual default table value, rather than -1.
      • Where a value is set by a table parameter, this value overrides the system default and the value set by Spider system variable.
      • If a table parameter is not set, the Spider system variable’s value is used. This behavior is unchanged.
    • See “Interface Changes” for a full list of updated default values.

 

MARIADB ENTERPRISE SERVER 10.4.31-21

Detailed MariaDB Enterprise Server 10.4.31-21 Release Notes

  • The package for the cracklib_password_check plugin includes an SELinux policy, allowing the plugin to work with SELinux.
  • With Optimizer Trace, a sel_arg_alloc_limit_hit record is written when MAX_SEL_ARGS is reached.
    • MAX_SEL_ARGS is one of the limits in the optimizer that triggers short-cut of time-intensive or memory-intensive analysis for complex WHERE clauses.
      For example:
SELECT
JSON_DETAILED(JSON_EXTRACT(trace, '$**.setup_range_conditions'))
FROM information_schema.OPTIMIZER_TRACE;

[
   [
     {
       "sel_arg_alloc_limit_hit":
       {
       "alloced_sel_args": 16001
       }
     }
   ]
]
  • ANALYZE FORMAT=JSON output includes InnoDB statistics.
    For example:
"table": {
"table_name": "t1",
...
"r_engine_stats": {
"pages_accessed": integer,
"pages_updated" : integer,
"pages_read_count" : integer,
"pages_read_time_ms" : double_val,
"old_rows_read" : integer,
},
  • Slow query log output includes InnoDB engine information.
    • InnoDB engine information output is enabled with --log-slow-verbosity=innodb
      Sample output:
# Pages_accessed: 184 Pages_read: 95 Pages_updated: 0 Undo_rows_read: 1
# Pages_read_tim e: 17.0204 Engine_time: 248.1297
    • Engine_time is the time in milliseconds spent inside engine calls.
    • Page_* variables are supported for the InnoDB storage engine.
  • For the Spider storage engine, the default values and behavior of some system variables has changed:
    • Prior to this release:
      • These variables used a value of -1 (the default) to indicate that Spider would use the default table value, and this value was not user visible.
      • Spider table parameters could set values, but these values would be overridden with the system variable value if the system variable was set to a value other than -1.
    • Starting with this release:
      • The default value for these system variables has been updated to reflect the actual default table value, rather than -1.
      • Where a value is set by a table parameter, this value overrides the system default and the value set by Spider system variable.
      • If a table parameter is not set, the Spider system variable’s value is used. This behavior is unchanged.
    • See “Interface Changes” for a full list of updated default values.

 

Why MariaDB Enterprise Server

MariaDB Enterprise Server is an enhanced, hardened and secured version of MariaDB Community Server that delivers enterprise reliability, stability and long-term support as well as greater operational efficiency when it comes to managing large database deployments for business and mission critical applications. MariaDB Enterprise Server offers additional features needed for production workloads that are not available in the community edition, such as enterprise audit and enterprise backup, and also backports certain enterprise features to older versions so customers can take advantage of critical fixes and features immediately instead of having to upgrade to the newest version.

Being able to backport features from newer release series to older versions is a key advantage of MariaDB Enterprise Server. Quality assurance and internal processes do not always allow customers to upgrade production environments to the newest and greatest release series, although some of the new features would be of value. MariaDB Enterprise Server can help in this case, as we can backport highly requested features to existing versions in cases where we can assure that a backported feature does not decrease the stability of that release series of MariaDB Enterprise Server.

Download MariaDB Enterprise Server

MariaDB customers can download MariaDB Enterprise Server versions at mariadb.com/downloads/enterprise or try it in the cloud using MariaDB SkySQL – the only DBaaS that leverages the entire suite of MariaDB enterprise database products.