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

Reduce usage of LOCK_open: tc_count

Description

tc_release_table is critical section of table cache. Among other things, it checks if table cache threshold is reached and if so evicts to-be-released table. This is done by comparing tc_count with tc_size.

tc_count can be atomic and checked beyond of LOCK_open. Besides it is last global variable protected by this lock.

The cost is as following:

  • tc_add_table() assumed that there is nothing to evict if tc_count > tc_size and skipped expensive LRU lookup. This assumption will be broken and LRU lookup must be done if tc_count >= tc_size.

A patch for this task hasn't been benchmarked yet.

Environment

None

Status

Assignee

Sergey Vojtovich

Reporter

Sergey Vojtovich

Labels

None

External issue ID

None

External issue ID

None

Fix versions

Priority

Major