Page MenuHomePhabricator

Considering switching innodb_checksum_algorithm=full_crc32
Open, MediumPublic

Description

As per MariaDB's recommendation on this bug report: https://jira.mariadb.org/browse/MDEV-23653 we might want to go from

+---------------------------+--------+
| Variable_name             | Value  |
+---------------------------+--------+
| innodb_checksum_algorithm | INNODB |
+---------------------------+--------+`

To innodb_checksum_algorithm=full_crc32 which will be default on 10.5+ anyways

From the doc:

The algorithm InnoDB uses for page checksumming. Possible values are FULL_CRC32 for new files, always use CRC-32C; for old, see CRC32 below; STRICT_FULL_CRC32 for new files, always use CRC-32C; for old, see STRICT_CRC32 below; CRC32 write crc32, allow any of the other checksums to match when reading; STRICT_CRC32 write crc32, do not allow other algorithms to match when reading; INNODB write a software calculated checksum, allow any other checksums to match when reading; STRICT_INNODB write a software calculated checksum, do not allow other algorithms to match when reading; NONE write a constant magic number, do not do any checksum verification when reading; STRICT_NONE write a constant magic number, do not allow values other than that magic number when reading; Files updated when this option is set to crc32 or strict_crc32 will not be readable by MariaDB versions older than 10.0.4; new files created with full_crc32 are readable by MariaDB 10.4.3+

From the bug report:

In 10.4, I would recommend

SET GLOBAL innodb_checksum_algorithm=full_crc32;

to get faster and more secure page checksums. The setting is the default starting with the 10.5 release. It only affects tables that have been created or rebuilt while the setting was in effect. Old-format files will be treated as crc32 (or if you use strict_full_crc32, as strict_crc32).

Event Timeline

Marostegui added a project: DBA.
Marostegui moved this task from Triage to Ready on the DBA board.

I am going to turn this ON for now on the new parsercache hosts on both eqiad and codfw, and see how they do (ie: no unexpected crashes and such). If that goes well, I will enable it on all the parsercache hosts (via puppet).

Mentioned in SAL (#wikimedia-operations) [2021-07-23T11:50:20Z] <marostegui> Change innodb_checksum_algorithm to full_crc32 on pc1011-1014 and pc2011-2014 - T287244