Details
-
Task
-
Status: Open (View Workflow)
-
Major
-
Resolution: Unresolved
Description
Hi,
in MariaDB 10.3, the defaults for MyISAM and Aria cache sizes (key_buffer_size and aria_pagecache_buffer_size) are 128 MB. This is the same as for the InnoDB Buffer Pool (innodb_buffer_pool_size).
IMHO, those values should be lower. Here are some arguments for this:
- Allocating 3x 128 MB in the default configuration is a waste (both in RAM usage and in core dump size),
- MyISAM and Aria are less used than InnoDB.
I would like to point out that this is not a change for the sake of change. The goal is to reduce the memory footprint of a default MariaDB installation.
Another consideration is that the size of caches for all storage engine is very workload specific and those parameters should be tuned in most serious deployment. The default for InnoDB (128 MB) looks good to me as this is the main Storage Engine in the MySQL/MariaDB up to now. But considering that MyISAM and Aria are less used, I think their default should be much lower.
As a side-note, MySQL default for MyISAM cache is 8 MB since at least 5.5. If this is good for MySQL, it should probably be good for MariaDB.
Note: the priority of this task is set as Major. The main motivation is that aria_pagecache_buffer_size is is not dynamic, so fixing it needs a server restart. If aria_pagecache_buffer_size was dynamic, the priority of this task might be lowered.
Related: MDEV-16606: Make aria_pagecache_buffer_size dynamic.
Thanks for looking into that,
JFG
We could in 10.6 change MyISAM as this is not used at all by default setup (Since 10.5)
I don't think it is a good idea to change default configurations drastically for old releases.
I was just working with a MariaDB user who had a lot of tables in MyISAM, so it is still used.
For Aria the current defaults are ok, as we are using it heavily for temporary tables. Making the default smaller would make any queries, with more than 128M of data, with group by, order by, joins without proper keys (still happens for a lot of users) notably slower.
In fact, we should even consider to increased this value (but of course not larger than InnoDB buffers).
MySQL 8.0 is probably not using MyISAM for temporary tables, which is why it is not comparable to Aria in MariaDB.
Agree that we should at some time making Aria keycache dynamic, as we have done with MyISAM.