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

buf_read_page() should return a buffer-fixed block

    XMLWordPrintable

Details

    • Related to performance
    • When a page needs to be read into the InnoDB buffer pool, concurrent access to the page will avoid some hash table lookup and busy waiting.
    • Q4/2025 Server Maintenance

    Description

      Every caller of buf_read_page() is expecting to gain access to the block. If that function returned a buffer-fixed block descriptor, we could avoid some busy work, such as a redundant lookup of buf_pool.page_hash.

      This change was initially part of the 11.4 development version of MDEV-34431, but there are some issues with it, apparently some hangs due to not released buffer-fix under some special circumstances. In my own performance testing yesterday, I observed a 4% performance improvement in an I/O bound read-write workload where the active working set does not fit in the buffer pool.

      Attachments

        1. commit_ce4a68e5a9f_flamegraph.svg
          1.49 MB
          Rahul Raj
        2. commit_cf4196baad5_flamegraph.svg
          1.50 MB
          Rahul Raj
        3. mdev_37244_flamegraph.svg
          1.49 MB
          Rahul Raj

        Issue Links

          Activity

            People

              marko Marko Mäkelä
              marko Marko Mäkelä
              Marko Mäkelä Marko Mäkelä
              Thirunarayanan Balathandayuthapani Thirunarayanan Balathandayuthapani
              Saahil Alam Saahil Alam
              Votes:
              1 Vote for this issue
              Watchers:
              9 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: