Hi, Sergey! On Aug 03, Sergey Vojtovich wrote:
On Jun 29, Sergey Vojtovich wrote:
revision-id: 48d1ba6097939efe5efd28dd3ed9d281cc2bc2f4 (mariadb-10.2.0-93-g48d1ba6) parent(s): 8bec9746f0d5b363f385713035ca3f2daff34e1c committer: Sergey Vojtovich timestamp: 2016-06-29 16:33:08 +0400 message:
MDEV-10296 - Multi-instance table cache
Improve scalability by implementing multi-instance table cache.
diff --git a/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result b/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result index e075c64..22b12a9 100644 --- a/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result +++ b/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result @@ -4559,6 +4559,20 @@ NUMERIC_BLOCK_SIZE 1 ENUM_VALUE_LIST NULL READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME TABLE_OPEN_CACHE_INSTANCES +SESSION_VALUE NULL +GLOBAL_VALUE 1 +GLOBAL_VALUE_ORIGIN COMPILE-TIME
Default value 1 and it's not auto-tuned on startup? You think multi-instance table cache is better stay unused? :) If not, either use a reasonable default or, may be, choose it on startup based on my_gencpus() Yes, I think multi-instance table cache is better stay unused probably in 99% of installations. E.g. 2 CPU / 20 cores / 40 threads Broadwell is 95% satisfied by single instance.
Well... If you add a feature that is "better stay unused probably in 99% of installations" and disable it by default, it will not be used at all. Let's think how we can make this feature used, is autosizing the only option?
Besides, instead of pointer arithmetics, you could've simply put
Share_free_tables free_tables[1];
at the end of TDC_element. I'll try it. I tend to remember it wasn't very welcome by C99 (I may be very wrong though).
I belive we use that in other places, so it must work ok. Regards, Sergei Chief Architect MariaDB and security@mariadb.org