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

Miscellaneous table cache improvements

    XMLWordPrintable

Details

    • Task
    • Status: Open (View Workflow)
    • Minor
    • Resolution: Unresolved
    • None
    • None
    • None

    Description

      • Add status variable for expensive table cache evictions (from tc_add_table()). Not valid after MDEV-10296
      • Add status variable for cheap table cache evictions (from tc_release_table()). Not valid after MDEV-10296
      • Expensive eviction: evict 10 (or 20, or 100, or 10%) tables at once. Not valid after MDEV-10296
      • Use recently implemented Atomic class for all atomic variables. (Atomic class was declined)
      • Make sure LOCK_open is on a separate cache line (at least until it is used by tc_release_table()). It was seen to cause false sharing with tc_count at least. No LOCK_open anymore, table cache instances are on separate cache lines after MDEV-10296
      • Add an inline getter method TABLE::in_use() that in debug builds will assert: DBUG_ASSERT(table->in_use == current_thd || (table->s->flushed && table->in_use))
      • ha_table_exists() - instead of calling tdc_lock_share()/tdc_unlock_share() do hash lookup.

      Attachments

        Activity

          People

            Unassigned Unassigned
            svoj Sergey Vojtovich
            Votes:
            0 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.