summaryrefslogtreecommitdiff
path: root/sql/set_var.h
diff options
context:
space:
mode:
authorMonty <monty@mariadb.org>2018-03-22 20:03:54 +0200
committerMonty <monty@mariadb.org>2018-03-26 17:53:17 +0300
commitca0c96fc8925d36ea0c5121520bf7d8f12ad90a5 (patch)
tree843095647e3a3d7c1d9be94954e51e9476729a68 /sql/set_var.h
parent4d83b01537e3f1eb257a8e9a6416938e03adea59 (diff)
downloadmariadb-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.h10
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);