diff options
author | Monty <monty@mariadb.org> | 2018-03-22 20:03:54 +0200 |
---|---|---|
committer | Monty <monty@mariadb.org> | 2018-03-26 17:53:17 +0300 |
commit | ca0c96fc8925d36ea0c5121520bf7d8f12ad90a5 (patch) | |
tree | 843095647e3a3d7c1d9be94954e51e9476729a68 /sql/set_var.h | |
parent | 4d83b01537e3f1eb257a8e9a6416938e03adea59 (diff) | |
download | mariadb-git-ca0c96fc8925d36ea0c5121520bf7d8f12ad90a5.tar.gz |
Adjust table_open_cache to avoid getting error 24 (too many open files)
MDEV--15609 engines/funcs.crash_manytables_number crashes with error 24
(too many open files)
MDEV-10286 Adjustment of table_open_cache according to system limits
does not work when open-files-limit option is provided
Fixed by adjusting tc_size downwards if there is not enough file
descriptors to use.
Other changes:
- Ensure that there is 30 (was 10) extra file descriptors for other usage
- Decrease TABLE_OPEN_CACHE_MIN to 200 as it's better to have a smaller
table cache than getting error 24
- Increase minimum of max_connections and table_open_cache from 1 to 10
as 1 is not usable for any real application, only for testing.
Diffstat (limited to 'sql/set_var.h')
-rw-r--r-- | sql/set_var.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/sql/set_var.h b/sql/set_var.h index cf86ecf18fa..fe66eaff775 100644 --- a/sql/set_var.h +++ b/sql/set_var.h @@ -394,6 +394,16 @@ int sql_set_variables(THD *thd, List<set_var_base> *var_list, bool free); set_sys_var_value_origin(&VAR, sys_var::AUTO); \ } while(0) +#define SYSVAR_AUTOSIZE_IF_CHANGED(VAR,VAL,TYPE) \ + do { \ + TYPE tmp= (VAL); \ + if (VAR != tmp) \ + { \ + VAR= (VAL); \ + set_sys_var_value_origin(&VAR, sys_var::AUTO); \ + } \ + } while(0) + void set_sys_var_value_origin(void *ptr, enum sys_var::where here); enum sys_var::where get_sys_var_value_origin(void *ptr); |