Details
-
Task
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
-
None
Description
change temp-pool to be 0 by default and deprecate it
According to benchmarks made by Axel (and further analysis) , this code behind --temp-pool=1 in create_tmp_table() causes a heavy mutex contention:
if (use_temp_pool && !(test_flags & TEST_KEEP_TMP_TABLES)) |
 |
temp_pool_slot = bitmap_lock_set_next(&temp_pool);
|
The --temp-pool option was implemented to address some bottleneck in Linux kernel, which is reported to be fixed nowadays.
In MySQL, --temp-pool was deprecated in 5.7 and removed in 8.0.
Let's do the following:
- Set --temp-pool=0 by default in MariaDB-10.5 (currently its default is 1)
- Mark it as deprecated in mysqld --help output
- Remove it in some later version, tentatively in 10.6.
In the meanwhile, we should try to find proves that this problem was really addressed in Linux.
Attachments
Issue Links
- is duplicated by
-
MDEV-23407 --temp-pool: change default to 0 and deprecate
- Closed
- relates to
-
MDEV-25275 Remove temp-pool option and/or deprecate it properly
- Closed
- links to