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

Implement event-driven innodb_adaptive_flushing=OFF that ignores innodb_io_capacity

Details

    Description

      InnoDB enables an ‘adaptive’ flushing mode by default, which attempts to ensure a steady flow of page flushing and avoid write bursts on log checkpoint.

      There is a non-default option innodb_adaptive_flushing=OFF that is still based on waking up the page cleaner thread at least once per second. I think that we should offer a purely event-driven flushing option that would ignore innodb_io_capacity altogether and perform best effort for the buffer pool to remain between innodb_max_dirty_pages_pct_lwm and innodb_max_dirty_pages_pct.

      I implemented a crude prototype of this.

      Attachments

        Issue Links

          Activity

            In the purely event-driven innodb_adaptive_flushing=OFF mode, it might even make sense to skip the buf_flush_wait_flushed() altogether, and simply perform a ‘best effort’ checkpoint based on MIN(oldest_modification).

            marko Marko Mäkelä added a comment - In the purely event-driven innodb_adaptive_flushing=OFF mode, it might even make sense to skip the buf_flush_wait_flushed() altogether, and simply perform a ‘best effort’ checkpoint based on MIN(oldest_modification) .

            Perhaps the periodic log checkpoints should be moved from srv_master_callback() to the page cleaner thread (affecting both modes of flushing), possibly as part of fixing MDEV-23855.

            marko Marko Mäkelä added a comment - Perhaps the periodic log checkpoints should be moved from srv_master_callback() to the page cleaner thread (affecting both modes of flushing), possibly as part of fixing MDEV-23855 .

            People

              wlad Vladislav Vaintroub
              marko Marko Mäkelä
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:

                Git Integration

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