Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.0.9
-
None
-
None
Description
tc_acquire_table and tc_release_table are critical sections of table cache. Among other things, they update TABLE_SHARE::tdc.free_tables:
tc_acquire_table - pop TABLE object from free_tables
tc_release_table - push TABLE object to free_tables
Updating free_tables list is protected by global mutex. Since free_tables is per-share list we can protect it by per-share mutex instead.
This is simple intermediate change that improves table cache scalability in many loads.
Attachments
Issue Links
- relates to
-
MDEV-7292 Table_open_cache scalability issues
- Closed
-
MDEV-4702 Reduce usage of LOCK_open
- Closed
-
MDEV-4956 Reduce usage of LOCK_open: TABLE_SHARE::tdc.used_tables
- Closed
-
MDEV-5388 Reduce usage of LOCK_open: unused_tables
- Closed
-
MDEV-5403 Reduce usage of LOCK_open: tc_count
- Closed
-
MDEV-5492 Reduce usage of LOCK_open: TABLE::in_use
- Closed
-
MDEV-5597 Reduce usage of LOCK_open: LOCK_flush
- Closed