Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Incomplete
-
10.0.15
-
None
-
Debian wheezy x86_64
Description
Hello,
in spite of recent effors, table_open_cache still seems to be hit by negative scalability. I ran the following benchmark tests:
- SET GLOBAL table_open_cache = 64
- Create 10,000 MyISAM Tables with a single integer
- Access all tables in a loop
- SET GLOBAL table_open_cache = 4000
- Access all tables in a loop
Results are the following:
Table creation: 4s (sync_frm=0)
SELECT, Table_open_cache=64: 1.696519199s
SELECT, Table_open_cache=4000: 5.946816624s
The results are quite consistent and performance seems to decrease linearly.
My biggest concern is that MariaDB 5.5.40 is 2x faster with this test:
Selecting from tables with default cache (64)
Time: 1.536537015s
Selecting from tables with extended cache (4000)
Time: 2.798534456s
The only good news is that MySQL 5.6 seems to do worse with this test, with 6s and 9s respectively.
We did improve scalability issues of concurrent connections accessing table cache. That is increased throughput of systems with high connection counts.
In all your examples (even 5.5.40) table_open_cache=64 shows better performance. So what's the point of high table_open_cache for such load?