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

index->rtr_ssn.mutex is wasting memory

    XMLWordPrintable

    Details

      Description

      As part of the SPATIAL INDEX implementation in InnoDB, dict_index_t was expanded by a rtr_ssn_t field. There are only 3 operations for this field, all protected by rtr_ssn_t::mutex:

      • btr_cur_search_to_nth_level() stores the least significant 32 bits of the 64-bit value that is stored in the index root page. (This would better be done when the table is opened for the very first time.)
      • rtr_get_new_ssn_id() increments the value by 1.
      • rtr_get_current_ssn_id() reads the current value.

      All these operations can be implemented equally safely by using atomic memory access operations. (Note: Race conditions do exist in the SPATIAL INDEX code, for example, MDEV-15274 and MDEV-15284.)

      The mutex is being unnecessarily allocated not only for SPATIAL INDEX objects, but for all InnoDB dict_index_t objects.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              marko Marko Mäkelä
              Reporter:
              marko Marko Mäkelä
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: