Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-21171

InnoDB is unnecessarily resetting FIL_PAGE_TYPE for full_crc32 files

    XMLWordPrintable

    Details

      Description

      Before MDEV-12026 introduced the innodb_checksum_algorithm=full_crc32 format, it was impossible to tell if InnoDB data files contained garbage in the FIL_PAGE_TYPE header field (and possibly other fields). This is because before MySQL 5.1.48, InnoDB would write uninitialized data to some fields, and because there was no way to tell with which InnoDB version a data file was created.

      With MDEV-12026, we know that if fil_space_t::full_crc32() holds, the data files do not contain uninitialized garbage. In that case, FIL_PAGE_TYPE should always be correct also for other than index pages, and fil_block_check_type() should not be invoked to correct anything.

      So, we should avoid invoking fil_block_check_type() unless !space->full_crc32() holds.

        Attachments

          Activity

            People

            Assignee:
            marko Marko Mäkelä
            Reporter:
            marko Marko Mäkelä
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: