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

change temp-pool to be 0 by default

    XMLWordPrintable

Details

    • Task
    • Status: Closed (View Workflow)
    • Critical
    • Resolution: Fixed
    • 10.5.7
    • Server
    • None

    Description

      change temp-pool to be 0 by default and deprecate it

      According to benchmarks made by Axel (and further analysis) , this code behind --temp-pool=1 in create_tmp_table() causes a heavy mutex contention:

        if (use_temp_pool && !(test_flags & TEST_KEEP_TMP_TABLES))
       
          temp_pool_slot = bitmap_lock_set_next(&temp_pool);
      

      The --temp-pool option was implemented to address some bottleneck in Linux kernel, which is reported to be fixed nowadays.

      In MySQL, --temp-pool was deprecated in 5.7 and removed in 8.0.

      Let's do the following:

      • Set --temp-pool=0 by default in MariaDB-10.5 (currently its default is 1)
      • Mark it as deprecated in mysqld --help output
      • Remove it in some later version, tentatively in 10.6.

      In the meanwhile, we should try to find proves that this problem was really addressed in Linux.

      Attachments

        Issue Links

          Activity

            People

              bar Alexander Barkov
              serg Sergei Golubchik
              Votes:
              1 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.