New features in MariaDB 10.3

Mature

Variables and Status Info

MariaDB system variables and status information are laws unto themselves. New variables are constantly being added; sometimes a few old ones drop away. The following is a brief overview of some system variables and status information not yet discussed that have changed with MariaDB 10.3.

The secure_timestamp variable influences how and whether a connection can change its local session timestamp. The following InnoDB system variables have been dropped and are therefore banned from appearing in the MariaDB configuration file. If you do not remove these variables from my.cnf, the MariaDB instance will not start after the upgrade:

  • innodb_file_format
  • innodb_file_format_check
  • innodb_file_format_max
  • innodb_large_prefix
  • innodb_mtflush_threads
  • innodb_use_mtflush

Feature status information shows which features MariaDB has used and how often. New variables are:

  • Feature_system_versioning
  • Feature_invisible_columns
  • Feature_json
  • Feature_custom_aggregate_functions

The table open cache (TOC) implements all status information already available in MySQL 5.7 to better monitor the behavior of the TOC:

  • Table_open_cache_active_instances
  • Table_open_cache_hits
  • Table_open_cache_misses
  • Table_open_cache_overflows

Finally, the innodb_buffer_pool_load_incomplete status information indicates whether loading of the InnoDB buffer pool has been completed or is still running after the restart of the instance.

Logging

MariaDB has two powerful logfiles: the general query log for all queries and the slow query log for slow queries. Both logfiles have new exclusion criteria that define what types of statements should not be logged. The log_disabled_statements variable with its possible values slave and sp (stored procedures) is responsible for the general query log, whereas the log_slow_disabled_statements variable with its possible values admin, call, slave, and sp is responsible for the slow query log.

Another way to set filters for the slow query log is to use the log_slow_filter variable. Queries that use priority queue optimization for file sort operations can now also be logged with the filsort_priority_queue variable. These queries are then also potential candidates for query tuning.

The information_schema database (also called I_S) has also improved slightly. Its tables have been optimized and are now expected to consume far less memory. System-Versioned Tables and Columns are now visible in the corresponding I_S.TABLES and I_S.COLUMNS tables, with the I_S.CHECK_CONSTRAINTS table already introduced with MariaDB 10.2, as well.

Replication

Some changes for semi-synchronous replication have appeared after a long wait. Alibaba has built in the Semisync plugin, so the functionality has now migrated directly into the server code. This step is intended to improve performance.

In asynchronous replication, two new variables have been added that the admin can use to control for which errors the system should try again to execute a command (slave_transaction_retry_errors) and how long it should wait before trying (slave_transaction_retry_interval). This change comes from the Spider developers camp.

Three status variables – Rpl_transactions_multi_engine, Transactions_gtid_foreign_engine, and Transactions_multi_engine – can be employed to determine whether transactions have been executed using different transactional storage engines (InnoDB, RocksDB, TokuDB) and whether it might make sense to use one table for each storage engine with the variable gtid_pos_auto_engines, which updates the GTIDs.

On the Galera cluster side, the plugin has been updated to the latest version. With the state snapshot transfer (SST) rsync method you can use stunnel, if available, to achieve data-in-transit encryption. The new variable wsrep_reject_queries makes it possible to reject requests with an error message while waiting for a node.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy ADMIN Magazine

SINGLE ISSUES
 
SUBSCRIPTIONS
 
TABLET & SMARTPHONE APPS
Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

comments powered by Disqus