Details
-
Bug
-
Status: Closed (View Workflow)
-
Trivial
-
Resolution: Fixed
-
10.2.27, 10.1.41, 10.3.18, 10.4.8
-
None
Description
The usage message for the innodb_compression_algorithm system variable is currently wrong.
https://mariadb.com/kb/en/library/innodb-system-variables/#innodb_compression_algorithm
https://mariadb.com/kb/en/library/compression/#choosing-a-page-compression-algorithm
The current usage message does not list snappy, which was added as an optional compression algorithm in MariaDB 10.1.3.
The current message looks like this:
|
sudo mysqld --help --verbose
|
...
|
--innodb-compression-algorithm[=name]
|
Compression algorithm used on page compression. One of:
|
none, zlib, lz4, lzo, lzma, or bzip2
|
...
|
The usage message is defined here:
https://github.com/MariaDB/server/blob/mariadb-10.4.8/storage/innobase/handler/ha_innodb.cc#L19659
You can see that the list in the usage message is hard-coded, but it is missing snappy.
Perhaps the list could instead be built dynamically from the values in the page_compression_algorithms array:
https://github.com/MariaDB/server/blob/mariadb-10.4.8/storage/innobase/handler/ha_innodb.cc#L19653
Non-supported compression algorithms are also compiled in as available options. Instead, support for the algorithm is checked at run-time in the innodb_compression_algorithm_validate() function:
https://github.com/MariaDB/server/blob/mariadb-10.4.8/storage/innobase/handler/ha_innodb.cc#L21190
Attachments
Issue Links
- relates to
-
MDEV-18586 Clarify benefits of compression methods (ROW_FORMAT=COMPRESSED vs PAGE_COMPRESSED=1)
-
- Closed
-
-
MDEV-20670 Add status variable that lists supported page compression algorithms
-
- Closed
-
Activity
Field | Original Value | New Value |
---|---|---|
Link |
This issue relates to |
Link |
This issue relates to |
Description |
The usage message for the {{innodb_compression_algorithm}} system variable is currently wrong.
https://mariadb.com/kb/en/library/innodb-system-variables/#innodb_compression_algorithm https://mariadb.com/kb/en/library/compression/#choosing-a-page-compression-algorithm There are two problems with the current usage message: 1.) It does not list {{snappy}}, which is supported in MariaDB 10.1.3 and later. 2.) It is currently a hard-coded list that includes all possible compression algorithms. In my opinion, it should only list the ones supported by the specific build. The current message looks like this: {noformat} sudo mysqld --help --verbose ... --innodb-compression-algorithm[=name] Compression algorithm used on page compression. One of: none, zlib, lz4, lzo, lzma, or bzip2 ... {noformat} The message is set in the code here: https://github.com/MariaDB/server/blob/mariadb-10.4.8/storage/innobase/handler/ha_innodb.cc#L19659 You can see that the list is hard-coded, so even non-supported compressions algorithms are available. Non-supported compression algorithms are also available as options: https://github.com/MariaDB/server/blob/mariadb-10.4.8/storage/innobase/handler/ha_innodb.cc#L19653 Instead, support for the algorithm is checked in the {{innodb_compression_algorithm_validate()}} function: https://github.com/MariaDB/server/blob/mariadb-10.4.8/storage/innobase/handler/ha_innodb.cc#L21190 |
The usage message for the {{innodb_compression_algorithm}} system variable is currently wrong.
https://mariadb.com/kb/en/library/innodb-system-variables/#innodb_compression_algorithm https://mariadb.com/kb/en/library/compression/#choosing-a-page-compression-algorithm There are two problems with the current usage message: 1.) It does not list {{snappy}}, which is supported in MariaDB 10.1.3 and later. 2.) It is currently a hard-coded list that includes all possible compression algorithms, except {{snappy}}. In my opinion, it should only list the ones supported by the specific {{mysqld}} build. The current message looks like this: {noformat} sudo mysqld --help --verbose ... --innodb-compression-algorithm[=name] Compression algorithm used on page compression. One of: none, zlib, lz4, lzo, lzma, or bzip2 ... {noformat} The message is set in the code here: https://github.com/MariaDB/server/blob/mariadb-10.4.8/storage/innobase/handler/ha_innodb.cc#L19659 You can see that the list is hard-coded, so even non-supported compressions algorithms are available. Non-supported compression algorithms are also available as options: https://github.com/MariaDB/server/blob/mariadb-10.4.8/storage/innobase/handler/ha_innodb.cc#L19653 Instead, support for the algorithm is checked in the {{innodb_compression_algorithm_validate()}} function: https://github.com/MariaDB/server/blob/mariadb-10.4.8/storage/innobase/handler/ha_innodb.cc#L21190 |
Summary | Usage message for innodb_compression_algorithm is wrong | Usage message for innodb_compression_algorithm system variable is wrong |
Component/s | Configuration [ 13904 ] | |
Component/s | Variables [ 13903 ] |
Description |
The usage message for the {{innodb_compression_algorithm}} system variable is currently wrong.
https://mariadb.com/kb/en/library/innodb-system-variables/#innodb_compression_algorithm https://mariadb.com/kb/en/library/compression/#choosing-a-page-compression-algorithm There are two problems with the current usage message: 1.) It does not list {{snappy}}, which is supported in MariaDB 10.1.3 and later. 2.) It is currently a hard-coded list that includes all possible compression algorithms, except {{snappy}}. In my opinion, it should only list the ones supported by the specific {{mysqld}} build. The current message looks like this: {noformat} sudo mysqld --help --verbose ... --innodb-compression-algorithm[=name] Compression algorithm used on page compression. One of: none, zlib, lz4, lzo, lzma, or bzip2 ... {noformat} The message is set in the code here: https://github.com/MariaDB/server/blob/mariadb-10.4.8/storage/innobase/handler/ha_innodb.cc#L19659 You can see that the list is hard-coded, so even non-supported compressions algorithms are available. Non-supported compression algorithms are also available as options: https://github.com/MariaDB/server/blob/mariadb-10.4.8/storage/innobase/handler/ha_innodb.cc#L19653 Instead, support for the algorithm is checked in the {{innodb_compression_algorithm_validate()}} function: https://github.com/MariaDB/server/blob/mariadb-10.4.8/storage/innobase/handler/ha_innodb.cc#L21190 |
The usage message for the {{innodb_compression_algorithm}} system variable is currently wrong.
https://mariadb.com/kb/en/library/innodb-system-variables/#innodb_compression_algorithm https://mariadb.com/kb/en/library/compression/#choosing-a-page-compression-algorithm The current usage message does not list {{snappy}}, which was added as an optional compression algorithm in MariaDB 10.1.3. The current message looks like this: {noformat} sudo mysqld --help --verbose ... --innodb-compression-algorithm[=name] Compression algorithm used on page compression. One of: none, zlib, lz4, lzo, lzma, or bzip2 ... {noformat} The usage message is defined here: https://github.com/MariaDB/server/blob/mariadb-10.4.8/storage/innobase/handler/ha_innodb.cc#L19659 You can see that the list in the usage message is hard-coded, and it explicitly lists all compression algorithms except for {{snappy}}. Perhaps the list could instead be built dynamically from the values in the {{page_compression_algorithms}} array: https://github.com/MariaDB/server/blob/mariadb-10.4.8/storage/innobase/handler/ha_innodb.cc#L19653 Non-supported compression algorithms are also compiled in as available options. Instead, support for the algorithm is checked at run-time in the {{innodb_compression_algorithm_validate()}} function: https://github.com/MariaDB/server/blob/mariadb-10.4.8/storage/innobase/handler/ha_innodb.cc#L21190 |
Priority | Major [ 3 ] | Trivial [ 5 ] |
Summary | Usage message for innodb_compression_algorithm system variable is wrong | Usage message for innodb_compression_algorithm system variable is missing "snappy" |
Description |
The usage message for the {{innodb_compression_algorithm}} system variable is currently wrong.
https://mariadb.com/kb/en/library/innodb-system-variables/#innodb_compression_algorithm https://mariadb.com/kb/en/library/compression/#choosing-a-page-compression-algorithm The current usage message does not list {{snappy}}, which was added as an optional compression algorithm in MariaDB 10.1.3. The current message looks like this: {noformat} sudo mysqld --help --verbose ... --innodb-compression-algorithm[=name] Compression algorithm used on page compression. One of: none, zlib, lz4, lzo, lzma, or bzip2 ... {noformat} The usage message is defined here: https://github.com/MariaDB/server/blob/mariadb-10.4.8/storage/innobase/handler/ha_innodb.cc#L19659 You can see that the list in the usage message is hard-coded, and it explicitly lists all compression algorithms except for {{snappy}}. Perhaps the list could instead be built dynamically from the values in the {{page_compression_algorithms}} array: https://github.com/MariaDB/server/blob/mariadb-10.4.8/storage/innobase/handler/ha_innodb.cc#L19653 Non-supported compression algorithms are also compiled in as available options. Instead, support for the algorithm is checked at run-time in the {{innodb_compression_algorithm_validate()}} function: https://github.com/MariaDB/server/blob/mariadb-10.4.8/storage/innobase/handler/ha_innodb.cc#L21190 |
The usage message for the {{innodb_compression_algorithm}} system variable is currently wrong.
https://mariadb.com/kb/en/library/innodb-system-variables/#innodb_compression_algorithm https://mariadb.com/kb/en/library/compression/#choosing-a-page-compression-algorithm The current usage message does not list {{snappy}}, which was added as an optional compression algorithm in MariaDB 10.1.3. The current message looks like this: {noformat} sudo mysqld --help --verbose ... --innodb-compression-algorithm[=name] Compression algorithm used on page compression. One of: none, zlib, lz4, lzo, lzma, or bzip2 ... {noformat} The usage message is defined here: https://github.com/MariaDB/server/blob/mariadb-10.4.8/storage/innobase/handler/ha_innodb.cc#L19659 You can see that the list in the usage message is hard-coded, but it is missing {{snappy}}. Perhaps the list could instead be built dynamically from the values in the {{page_compression_algorithms}} array: https://github.com/MariaDB/server/blob/mariadb-10.4.8/storage/innobase/handler/ha_innodb.cc#L19653 Non-supported compression algorithms are also compiled in as available options. Instead, support for the algorithm is checked at run-time in the {{innodb_compression_algorithm_validate()}} function: https://github.com/MariaDB/server/blob/mariadb-10.4.8/storage/innobase/handler/ha_innodb.cc#L21190 |
issue.field.resolutiondate | 2020-08-12 15:39:59.0 | 2020-08-12 15:39:59.921 |
Fix Version/s | 10.1.47 [ 24510 ] | |
Fix Version/s | 10.2.34 [ 24505 ] | |
Fix Version/s | 10.3.25 [ 24506 ] | |
Fix Version/s | 10.4.15 [ 24507 ] | |
Fix Version/s | 10.5.6 [ 24508 ] | |
Fix Version/s | 10.2 [ 14601 ] | |
Fix Version/s | 10.1 [ 16100 ] | |
Fix Version/s | 10.3 [ 22126 ] | |
Fix Version/s | 10.4 [ 22408 ] | |
Resolution | Fixed [ 1 ] | |
Status | Open [ 1 ] | Closed [ 6 ] |
Fix Version/s | 10.5.7 [ 25019 ] |
Fix Version/s | 10.5.6 [ 24508 ] |
Fix Version/s | 10.4.16 [ 25020 ] |
Fix Version/s | 10.4.15 [ 24507 ] |
Fix Version/s | 10.3.26 [ 25021 ] |
Fix Version/s | 10.3.25 [ 24506 ] |
Fix Version/s | 10.2.35 [ 25022 ] |
Fix Version/s | 10.2.34 [ 24505 ] |
Fix Version/s | 10.1.48 [ 25108 ] |
Fix Version/s | 10.1.47 [ 24510 ] |
Workflow | MariaDB v3 [ 99983 ] | MariaDB v4 [ 156785 ] |
Unfortunately, we will keep including also unavailable compression algorithms in the list, because ENUM parameters allow numeric values, and we do not want innodb_compression_algorithm=3 to change meaning depending on the way how the source code was compiled.