Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

autosize rather than copy default values for system settings #45

Closed
grooverdan opened this issue Feb 21, 2022 · 2 comments
Closed

autosize rather than copy default values for system settings #45

grooverdan opened this issue Feb 21, 2022 · 2 comments

Comments

@grooverdan
Copy link

As @ioanma found out in MariaDB/mariadb-docker#413 (comment), the setting of lower_case_table_names=0 in 0f2c8ce caused them to fail on start up.

What isn't clear in the documentation, is that lower_case_table_names isn't exactly a default value of 0 on unix, but an auto-determined default value based on lower_case_file_system. As the user has a lower case data directory, this now fails at startup.

MariaDB is going to continue to autoset these settings in a way that gets the best user experience. We really want to see an ideal scenario where only a small amount of tuning is needed.

I understand that you may occasionally want a different default for you users, however that should be a special case rather than just providing a environment variable with the current default value at the time of commit.

The current dangerous defaults I see on a very quick examination are:

  • query_cache_type=ON (highly negative performance impact)
  • innodb_flush_log_at_trx_commit=2 (data loss)
  • join buffer size - ref since 10.4 is autosized based on rows
  • innodb_open_files - now autosized

So as a feature request for our communities, can the default configuration files of wodby/mariadb work their way back to being a default, or where there is a divergence in configuration from default, this is documented in the configuration file for the awareness of the user, and you as a maintainer. As nextcloud discovered, the use of non-defaults can result in hardship for the user communities.

csandanov added a commit that referenced this issue Feb 21, 2022
$MYSQL_LOWER_CASE_TABLE_NAMES, $MYSQL_JOIN_BUFFER_SIZE, $MYSQL_INNODB_OPEN_FILES no longer set by default unless specified
$MYSQL_QUERY_CACHE_SIZE default value changed to 1M
$MYSQL_QUERY_CACHE_TYPE now OFF by default
$MYSQL_INNODB_FLUSH_LOG_AT_TRX_COMMIT default value changed to 1
Added new $MYSQL_JOIN_BUFFER_SPACE_LIMIT, $MYSQL_OPTIMIZER_SWITCH (no default values)
Bugfix: $MYSQL_LOWER_CASE_TABLE_NAME changed to $MYSQL_LOWER_CASE_TABLE_NAMES
@csandanov
Copy link
Member

Hi, thank you for your recommendations. I've reworked defaults and introduced some new env vars to adjust it if needed.

@grooverdan
Copy link
Author

thanks

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants