Compression Plugins

MariaDB starting with 10.7.0

Compressions plugins were added in a MariaDB 10.7.0 preview release.

The various MariaDB storage engines, such as InnoDB, RocksDB, Mroonga, can use different compression libraries.

Before MariaDB 10.7.0, each separate library would have to be compiled in in order to be available for use, resulting in numerous runtime/rpm/deb dependencies, most of which would never be used by users.

From MariaDB 10.7.0, five additional MariaDB compression libraries (besides the default zlib) are available as plugins (note that these affect InnoDB and Mroonga only; RocksDB still uses the compression algorithms from its own library):

  • bzip2
  • lzma
  • lz4
  • lzo
  • snappy

Installing

Depending on how MariaDB was installed, the libraries may already be available for installation, or may first need to be installed as .deb or .rpm packages, for example:

apt-get install mariadb-plugin-provider-lz4 

Once available, install as a plugin, for example:

INSTALL SONAME 'provider_lz4';

The compression algorithm can then be used, for example, in InnoDB compression:

SET GLOBAL innodb_compression_algorithm = lz4;

Upgrading

When upgrading from a release without compression plugins, if a non-zlib compression algorithm was used, those tables will be unreadable until the appropriate compression library is installed. mariadb-upgrade should be run. The --force option (to run mariadb-check) or mariadb-check itself will indicate any problems with compression, for example:

Warning  : MariaDB tried to use the LZMA compression, but its provider plugin is not loaded

Error    : Table 'test.t' doesn't exist in engine

status   : Operation failed

or

Error    : Table test/t is compressed with lzma, which is not currently loaded. 
  Please load the lzma provider plugin to open the table

error    : Corrupt

In this case, the appropriate compression plugin should be installed, and the server restarted.

See Also

Comments

Comments loading...
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.