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

Remove the global sequence DICT_HDR_ROW_ID for DB_ROW_ID

    XMLWordPrintable

Details

    Description

      InnoDB tables that lack a primary key (and any UNIQUE INDEX whose all columns are NOT NULL) will use an internally generated index, called GEN_CLUST_INDEX(DB_ROW_ID) in the InnoDB data dictionary, and hidden from the SQL layer.

      The 48-bit DB_ROW_ID is being assigned from a global sequence that is persisted in the DICT_HDR page.

      There is absolutely no reason for the DB_ROW_ID to be globally unique across all InnoDB tables. We should replace dict_sys_get_new_row_id() with a simple atomic increment of a counter in dict_table_t. When the table is opened for the first time, btr_cur_instant_init_low() can initialize the per-table counter by doing something similar to row_search_max_autoinc().

      Attachments

        Issue Links

          Activity

            People

              marko Marko Mäkelä
              marko Marko Mäkelä
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - 3d
                  3d
                  Remaining:
                  Remaining Estimate - 0d
                  0d
                  Logged:
                  Time Spent - 6.5h Time Not Required
                  6.5h

                  Git Integration

                    Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.