Details
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.
Gliffy Diagrams
Attachments
Issue Links
Activity
- All
- Comments
- Work Log
- History
- Activity
- Transitions
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?