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

Reduce usage of LOCK_open: TABLE_SHARE::tdc.used_tables

    Details

    • Type: Task
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Fix Version/s: 10.0.7
    • Component/s: None
    • Labels:
      None

      Description

      tc_acquire_table and tc_release_table are critical sections of table cache. Among other things, they update TABLE_SHARE::tdc.used_tables:
      tc_acquire_table - push new TABLE object to used_tables
      tc_release_table - remove TABLE object from used_tables

      used_tables list is not really necessary for table cache to operate properly. We can change it with all_tables list instead. tc_acquire_table and tc_release_table wont need to access all_tables list at all.

      The cost is as following:

      • 2 additional pointers per TABLE object
      • SHOW OPEN TABLES will have to iterate all_tables and skip objects with in_use == 0
      • same for TABLE_SHARE::visit_subgraph()
      • same for kill_delayed_threads_for_table()

      A patch for this task has been tested (read-only single table OLTP, 4 CPU linux server) and shown ~30% lower LOCK_open wait time and ~20% higher tps.

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

              Hide
              svoj Sergey Vojtovich added a comment -

              Sergei, please review attached patch. Committed patch didn't reach mailing list for some reason.

              Show
              svoj Sergey Vojtovich added a comment - Sergei, please review attached patch. Committed patch didn't reach mailing list for some reason.
              Hide
              svoj Sergey Vojtovich added a comment -

              Sergei, please review updated patch:
              Date: Tue, 10 Dec 2013 15:00:43 +0000 (UTC)
              From: Sergey Vojtovich <svoj@mariadb.org>
              To: commits@mariadb.org
              Subject: [Commits] Rev 3914: MDEV-4956 - Reduce usage of LOCK_open: TABLE_SHARE::tdc.used_tables in lp:maria/10.0

              Show
              svoj Sergey Vojtovich added a comment - Sergei, please review updated patch: Date: Tue, 10 Dec 2013 15:00:43 +0000 (UTC) From: Sergey Vojtovich <svoj@mariadb.org> To: commits@mariadb.org Subject: [Commits] Rev 3914: MDEV-4956 - Reduce usage of LOCK_open: TABLE_SHARE::tdc.used_tables in lp:maria/10.0
              Hide
              svoj Sergey Vojtovich added a comment -

              Pushed to 10.0.7, revision-id: svoj@mariadb.org-20131210150036-imkvngj5125mukqu

              Show
              svoj Sergey Vojtovich added a comment - Pushed to 10.0.7, revision-id: svoj@mariadb.org-20131210150036-imkvngj5125mukqu

                People

                • Assignee:
                  serg Sergei Golubchik
                  Reporter:
                  svoj Sergey Vojtovich
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  4 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved:

                    Time Tracking

                    Estimated:
                    Original Estimate - 2 days, 4 hours
                    2d 4h
                    Remaining:
                    Remaining Estimate - 4 hours
                    4h
                    Logged:
                    Time Spent - Not Specified Time Not Required
                    Not Specified