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

Secondary index MVCC access is unnecessarily inefficient

    XMLWordPrintable

Details

    • Bug
    • Status: Stalled (View Workflow)
    • Critical
    • Resolution: Unresolved
    • 10.4(EOL), 10.5, 10.6, 10.7(EOL), 10.8(EOL), 10.9(EOL), 10.10(EOL), 10.11, 11.0(EOL), 11.1(EOL), 11.2(EOL)
    • 10.6, 10.11

    Description

      As noted in MDEV-31558, a covering secondary index read in InnoDB would look up the clustered index record twice and retrieve the matching version. In the test innodb.mvcc_secondary we have a table with 2 versions of 1 row, and the first SELECT statement would construct the old version of the clustered index not once, but twice.

      MDEV-20301 replaced row_sel_get_clust_rec_for_mysql() with Row_sel_get_clust_rec_for_mysql::operator(), which adds some caching. It missed an opportunity to remove the call row_sel_sec_rec_is_for_clust_rec() and to perform those checks as part of the loop that invokes row_sel_build_prev_vers_for_mysql().

      Attachments

        Issue Links

          Activity

            People

              vlad.lesin Vladislav Lesin
              marko Marko Mäkelä
              Votes:
              1 Vote for this issue
              Watchers:
              4 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.