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

AliSQL: [Feature] Issue#19 BUFFER POOL LIST SCAN OPTIMIZATION

    XMLWordPrintable

Details

    Description

      Description:
      ------------
      backport from WebScaleSQL
       
      This patch includes:
      --- backport of upstream work around buffer pool list scan.
       
           WL#7047 - Optimize buffer pool list scans and related batch processing code
       
           Reduce excessive scanning of pages when doing flush list batches. The
           fix is to introduce the concept of "Hazard Pointer", this reduces the
           time complexity of the scan from O(n*n) to O(n).
       
           The concept of hazard pointer is reversed in this work.  Academically a
           hazard pointer is a pointer that the thread working on it will declare as
           such and as long as that thread is not done no other thread is allowed to
           do anything with it.
       
           In this WL we declare the pointer as a hazard pointer and then if any other
           thread attempts to work on it, it is allowed to do so but it has to adjust
           the hazard pointer to the next valid value. We use hazard pointer solely for
           reverse traversal of lists within a buffer pool instance.
       
           Add an event to control the background flush thread. The background flush
           thread wait has been converted to an os event timed wait so that it can be
           signalled by threads that want to kick start a background flush when the
           buffer pool is running low on free/dirty pages.
       
      --- fix for mysql bug#71411
           buf_flush_LRU() returns the number of pages processed. There are
           two types of processing that can happen. A page can get evicted or
           a page can get flushed. These two numbers are quite distinct and
           should not be mixed.
      

      https://github.com/alibaba/AliSQL/commit/2645293fb0c1ed398f7243da2c14ab07572045b0

      Attachments

        Issue Links

          Activity

            People

              marko Marko Mäkelä
              svoj Sergey Vojtovich
              Votes:
              0 Vote for this issue
              Watchers:
              4 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.