On Thu, Dec 8, 2022 at 6:25 PM Marko Mäkelä <marko.makela@mariadb.com> wrote:
MariaDB Server 10.4 introduced a new file format innodb_checksum_algorithm=full_crc32, and MariaDB Server 10.5 made it the default. Any files that were created when that setting is active are guaranteed to write any unused bytes as zeroes. It also fixes a peculiar design decision that some bytes of the page are not covered by any checksum, and that a page is considered valid if any of the non-full_crc32 checksums happen to produce a match. This includes the magic 0xdeadbeef for innodb_checksum_algorithm=none.
Maybe we should consider eventually deprecating write support for the non-full_crc32 format, to force a fresh start.
Please don't. Some of us run MariaDB on file systems that do their own block checksumming, and thus run innodb_checksum_algorithm=none, and/or have databases many terabytes in size. With terabyte size databases, doing a mysqldump+restore is realistically _never_ going to happen.