Details
-
Task
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
Description
As MariaDB is getting more storage engines and as they're getting more features, MariaDB can optionally use more and more compression libraries for various purposes.
InnoDB, TokuDB, RocksDB — they all can use different sets of compression libraries. Compiling them all in would result in a lot of run-time/rpm/deb dependencies, most of which will be never used by most of the users. Not compiling them in, would result in requests to compile them in. While most users don't use all these libraries, many users use some of these libraries.
A solution could be to load these libraries on request, without creating a packaging dependency. There are different ways to do it
- hide all compression libraries behind a single unified compression API. Either develop our own or use something like Squash. This would require changing all engines to use this API
- use the same approach as in server services — create a service per compression library, a service implementation will just return an error code for any function invocation if the corresponding library is not installed. this way — may be — we could avoid modifying all affected storage engines
Attachments
Issue Links
- blocks
-
MDEV-21877 Enable snappy compression by default for InnoDB page compression
- Open
- causes
-
MDEV-26762 Compressed table remains accessible without provider after unclean restart
- Closed
-
MDEV-26773 MariaBackup backup does not work with compression providers
- Closed
-
MDEV-26774 Compression provider unloading at runtime has no effect but doesn't produce a warning
- Closed
-
MDEV-26775 Error messages about unavailable compression libraries not returned in diagnostics
- Open
-
MDEV-26776 mroonga_libgroonga_support_lz4 is set to ON even when lz4 is not available, CREATE behavior changes
- Closed
-
MDEV-26791 MariaBackup logs compression provider plugins as encryption plugin
- Closed
-
MDEV-26792 MariaBackup prepare crashes with invalid pointer with compression providers and extra options
- Closed
-
MDEV-26794 MariaBackup does not recognize added providers upon prepare of incremental backup
- Closed
-
MDEV-26795 InnoDB writes error messages about compressed tables upon startup
- Closed
-
MDEV-26888 Fedora 33/34 in the foundation buildbot is missing lzo and bzip2
- Closed
-
MDEV-26924 document compatibility considerations re. provider plugins
- Closed
-
MDEV-27887 InnoDB may crash when required compression plugins are not loaded
- Confirmed
- includes
-
MDEV-22895 Implement server support for making compression library dependencies optional
- Closed
- relates to
-
MDEV-15048 storage/innobase: Fix cmake compression library detection
- Closed
-
MDEV-20255 InnoDB LZ4 and LZMA compression algorithms aren't available on Debian 9
- Closed
-
MDEV-26757 Compression-related tests fail with MSAN errors in buf_page_is_corrupted
- Open
-
MDEV-26907 innochecksum fails to validate full_crc32 for compressed or encrypted tables
- Open
-
MDEV-9821 Distribute MariaDB with more compression algorithms in the build
- Open
-
MDEV-11068 Review which innodb_compression_algorithm to support in binary packages
- Closed
-
MDEV-13281 Rocksdb doesn't have ZSTD in mariadb 10.2.6
- Open
-
MDEV-22762 Investigate if using Squash is viable for unifying compression APIs
- Stalled