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

InnoDB history list length is reverted from 64bit to 32bit int.

    XMLWordPrintable

Details

    Description

      In 10.4.x MariaDB changed the size of the rseg_history_len variable during switch to C++ atomics. MDEV-17441

      Compare :
      https://github.com/MariaDB/server/blob/10.3/storage/innobase/srv/srv0srv.cc#L2549
      and
      https://github.com/MariaDB/server/blob/10.4/storage/innobase/srv/srv0srv.cc#L2533

      This regression remains through to 10.9

      https://github.com/MariaDB/server/blob/5dba54bfef31d91c082362065cd091086e20ee9a/storage/innobase/srv/srv0srv.cc#L517
      and
      https://github.com/MariaDB/server/blob/5dba54bfef31d91c082362065cd091086e20ee9a/storage/innobase/srv/srv0srv.cc#L1593

      Under 10.3 the value displayed in the information_schema.innodb_metrics name = trx_rseg_history_len truncates at 2^32 size and rolls over to 0. However since the underlying hitory length is still a 64 bit int the size rolls back to >4Bn transcations after some purging has occurred.

      Under 10.4+ the behavior unknown at rollover. It appears there exists the chance that transactions can remain unpruned after rollover to 0.

      MySQL 8.0 still uses a 64bit int here.

      https://github.com/mysql/mysql-server/blob/8d8c986e5716e38cb776b627a8eee9e92241b4ce/storage/innobase/srv/srv0srv.cc#L2901

      Attachments

        Issue Links

          Activity

            People

              marko Marko Mäkelä
              TodoInTX Matthew Montgomery
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.