We're updating the issue view to help you get more done. 

Reduce usage of LOCK_open: LOCK_flush

Description

There is relationship between LOCK_flush and LOCK_open. Even though it is not on a hot path, it indirectly interferes with TABLE_SHARE::tdc.flushed. The latter is on hot path and will eventually be moved out of LOCK_open.

The sole purpose of LOCK_flush is to let tdc_remove_table() wait for concurrent FLUSH TABLES. Replace global rwlock with per-share condition variable.

Environment

None

Status

Assignee

Sergey Vojtovich

Reporter

Sergey Vojtovich

Labels

None

External issue ID

None

External issue ID

None

Fix versions

Priority

Major