[MDEV-5864] Reduce usage of LOCK_open: TABLE_SHARE::tdc.free_tables Created: 2014-03-14  Updated: 2014-12-08  Resolved: 2014-03-20

Status: Closed
Project: MariaDB Server
Component/s: None
Affects Version/s: 10.0.9
Fix Version/s: 10.0.10

Type: Bug Priority: Major
Reporter: Sergey Vojtovich Assignee: Sergey Vojtovich
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Relates
relates to MDEV-7292 Table_open_cache scalability issues Closed
relates to MDEV-4702 Reduce usage of LOCK_open Closed
relates to MDEV-4956 Reduce usage of LOCK_open: TABLE_SHAR... Closed
relates to MDEV-5388 Reduce usage of LOCK_open: unused_tables Closed
relates to MDEV-5403 Reduce usage of LOCK_open: tc_count Closed
relates to MDEV-5492 Reduce usage of LOCK_open: TABLE::in_use Closed
relates to MDEV-5597 Reduce usage of LOCK_open: LOCK_flush Closed

 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.



 Comments   
Comment by Sergey Vojtovich [ 2014-03-15 ]

Sergei, please review patch for this task.

Comment by Sergey Vojtovich [ 2014-03-20 ]

Fixed in 10.0.10, revno: 4071, revision-id: svoj@mariadb.org-20140320071113-ql1nx7dc9h22odx3

Generated at Thu Feb 08 07:07:37 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.