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

Implement parallel CREATE INDEX, ALTER TABLE, or bulk load

Details

    Description

      ALTER TABLE in InnoDB is single-threaded, except for the special case ADD FULLTEXT INDEX, which creates additional threads to create the partitioned inverted index in shorter time.

      We should refactor ADD FULLTEXT INDEX to make use of the MDEV-16264 work queue and make ADD INDEX use of the background threads as well. To avoid disparity with smaller items in the work queue, the work should be split into smaller items, such as "merge sort 2 blocks" or "copy a sorted block to index pages".

      Attachments

        Issue Links

          Activity

            When MDEV-11675 is implemented, we should ensure reasonable scheduling of resources on the replication slave.

            marko Marko Mäkelä added a comment - When MDEV-11675 is implemented, we should ensure reasonable scheduling of resources on the replication slave.

            This feature has been implemented in MySQL 8.0. If we used that for reference, we should also look for follow-up fixes, such as this one.

            marko Marko Mäkelä added a comment - This feature has been implemented in MySQL 8.0. If we used that for reference, we should also look for follow-up fixes, such as this one .

            Starting with MDEV-24621, this would speed up loading data into initially empty tables as well.

            marko Marko Mäkelä added a comment - Starting with MDEV-24621 , this would speed up loading data into initially empty tables as well.

            As noted in MDEV-26740, ALTER TABLE…ALGORITHM=COPY does not currently use any bulk load mechanism. We merely disable row-level undo logging (MDEV-11415).

            marko Marko Mäkelä added a comment - As noted in MDEV-26740 , ALTER TABLE…ALGORITHM=COPY does not currently use any bulk load mechanism. We merely disable row-level undo logging ( MDEV-11415 ).
            marko Marko Mäkelä added a comment - For the record, MySQL 8.0.33 is " removing bulk load component and multi-threaded index build feature. "

            MySQL 8.2.0 includes WL#14717 - InnoDB: Bulk Ingest Feature V1, which could serve as a useful reference.

            marko Marko Mäkelä added a comment - MySQL 8.2.0 includes WL#14717 - InnoDB: Bulk Ingest Feature V1 , which could serve as a useful reference.

            People

              thiru Thirunarayanan Balathandayuthapani
              marko Marko Mäkelä
              Votes:
              2 Vote for this issue
              Watchers:
              12 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.