mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
InnoDB: Backport innodb_autoextend_increment from 4.1
innobase/include/srv0srv.h: Add configuration variable srv_auto_extend_increment innobase/srv/srv0srv.c: Add configuration variable srv_auto_extend_increment sql/ha_innodb.h: Add configuration variable srv_auto_extend_increment sql/mysqld.cc: Add startup option innodb_autoextend_increment sql/set_var.cc: Add settable global variable innodb_autoextend_increment
This commit is contained in:
@ -27,7 +27,8 @@ extern os_event_t srv_lock_timeout_thread_event;
|
|||||||
|
|
||||||
/* If the last data file is auto-extended, we add this many pages to it
|
/* If the last data file is auto-extended, we add this many pages to it
|
||||||
at a time */
|
at a time */
|
||||||
#define SRV_AUTO_EXTEND_INCREMENT (8 * ((1024 * 1024) / UNIV_PAGE_SIZE))
|
#define SRV_AUTO_EXTEND_INCREMENT \
|
||||||
|
(srv_auto_extend_increment * ((1024 * 1024) / UNIV_PAGE_SIZE))
|
||||||
|
|
||||||
/* This is set to TRUE if the MySQL user has set it in MySQL */
|
/* This is set to TRUE if the MySQL user has set it in MySQL */
|
||||||
extern ibool srv_lower_case_table_names;
|
extern ibool srv_lower_case_table_names;
|
||||||
@ -49,6 +50,7 @@ extern ulint* srv_data_file_is_raw_partition;
|
|||||||
|
|
||||||
extern ibool srv_auto_extend_last_data_file;
|
extern ibool srv_auto_extend_last_data_file;
|
||||||
extern ulint srv_last_file_size_max;
|
extern ulint srv_last_file_size_max;
|
||||||
|
extern ulint srv_auto_extend_increment;
|
||||||
|
|
||||||
extern ibool srv_created_new_raw;
|
extern ibool srv_created_new_raw;
|
||||||
|
|
||||||
|
@ -86,6 +86,9 @@ ulint srv_last_file_size_max = 0; /* if != 0, this tells
|
|||||||
the max size auto-extending
|
the max size auto-extending
|
||||||
may increase the last data
|
may increase the last data
|
||||||
file size */
|
file size */
|
||||||
|
ulint srv_auto_extend_increment = 8; /* If the last data file is
|
||||||
|
auto-extended, we add this
|
||||||
|
many pages to it at a time */
|
||||||
ulint* srv_data_file_is_raw_partition = NULL;
|
ulint* srv_data_file_is_raw_partition = NULL;
|
||||||
|
|
||||||
/* If the following is TRUE we do not allow inserts etc. This protects
|
/* If the following is TRUE we do not allow inserts etc. This protects
|
||||||
|
@ -208,6 +208,7 @@ extern my_bool innobase_log_archive,
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
extern ulong srv_max_buf_pool_modified_pct;
|
extern ulong srv_max_buf_pool_modified_pct;
|
||||||
extern ulong srv_max_purge_lag;
|
extern ulong srv_max_purge_lag;
|
||||||
|
extern ulong srv_auto_extend_increment;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern TYPELIB innobase_lock_typelib;
|
extern TYPELIB innobase_lock_typelib;
|
||||||
|
@ -3518,6 +3518,7 @@ enum options_mysqld {
|
|||||||
OPT_INNODB_FORCE_RECOVERY,
|
OPT_INNODB_FORCE_RECOVERY,
|
||||||
OPT_INNODB_STATUS_FILE,
|
OPT_INNODB_STATUS_FILE,
|
||||||
OPT_INNODB_MAX_DIRTY_PAGES_PCT,
|
OPT_INNODB_MAX_DIRTY_PAGES_PCT,
|
||||||
|
OPT_INNODB_AUTOEXTEND_INCREMENT,
|
||||||
OPT_INNODB_TABLE_LOCKS,
|
OPT_INNODB_TABLE_LOCKS,
|
||||||
OPT_BDB_CACHE_SIZE,
|
OPT_BDB_CACHE_SIZE,
|
||||||
OPT_BDB_LOG_BUFFER_SIZE,
|
OPT_BDB_LOG_BUFFER_SIZE,
|
||||||
@ -3659,6 +3660,11 @@ struct my_option my_long_options[] =
|
|||||||
"Path to individual files and their sizes",
|
"Path to individual files and their sizes",
|
||||||
0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
#ifdef HAVE_INNOBASE_DB
|
#ifdef HAVE_INNOBASE_DB
|
||||||
|
{"innodb_autoextend_increment", OPT_INNODB_AUTOEXTEND_INCREMENT,
|
||||||
|
"Data file autoextend increment in megabytes",
|
||||||
|
(gptr*) &srv_auto_extend_increment,
|
||||||
|
(gptr*) &srv_auto_extend_increment,
|
||||||
|
0, GET_LONG, REQUIRED_ARG, 8L, 1L, 1000L, 0, 1L, 0},
|
||||||
{"innodb_data_home_dir", OPT_INNODB_DATA_HOME_DIR,
|
{"innodb_data_home_dir", OPT_INNODB_DATA_HOME_DIR,
|
||||||
"The common part for Innodb table spaces", (gptr*) &innobase_data_home_dir,
|
"The common part for Innodb table spaces", (gptr*) &innobase_data_home_dir,
|
||||||
(gptr*) &innobase_data_home_dir, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0,
|
(gptr*) &innobase_data_home_dir, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0,
|
||||||
|
@ -265,6 +265,8 @@ sys_var_long_ptr sys_innodb_max_dirty_pages_pct("innodb_max_dirty_pages_p
|
|||||||
&srv_max_buf_pool_modified_pct);
|
&srv_max_buf_pool_modified_pct);
|
||||||
sys_var_long_ptr sys_innodb_max_purge_lag("innodb_max_purge_lag",
|
sys_var_long_ptr sys_innodb_max_purge_lag("innodb_max_purge_lag",
|
||||||
&srv_max_purge_lag);
|
&srv_max_purge_lag);
|
||||||
|
sys_var_long_ptr sys_innodb_autoextend_increment("innodb_autoextend_increment",
|
||||||
|
&srv_auto_extend_increment);
|
||||||
sys_var_thd_bool sys_innodb_table_locks("innodb_table_locks",
|
sys_var_thd_bool sys_innodb_table_locks("innodb_table_locks",
|
||||||
&SV::innodb_table_locks);
|
&SV::innodb_table_locks);
|
||||||
#endif
|
#endif
|
||||||
@ -454,6 +456,7 @@ sys_var *sys_variables[]=
|
|||||||
#ifdef HAVE_INNOBASE_DB
|
#ifdef HAVE_INNOBASE_DB
|
||||||
&sys_innodb_max_dirty_pages_pct,
|
&sys_innodb_max_dirty_pages_pct,
|
||||||
&sys_innodb_max_purge_lag,
|
&sys_innodb_max_purge_lag,
|
||||||
|
&sys_innodb_autoextend_increment,
|
||||||
&sys_innodb_table_locks,
|
&sys_innodb_table_locks,
|
||||||
#endif
|
#endif
|
||||||
&sys_unique_checks
|
&sys_unique_checks
|
||||||
@ -508,6 +511,7 @@ struct show_var_st init_vars[]= {
|
|||||||
{"init_file", (char*) &opt_init_file, SHOW_CHAR_PTR},
|
{"init_file", (char*) &opt_init_file, SHOW_CHAR_PTR},
|
||||||
#ifdef HAVE_INNOBASE_DB
|
#ifdef HAVE_INNOBASE_DB
|
||||||
{"innodb_additional_mem_pool_size", (char*) &innobase_additional_mem_pool_size, SHOW_LONG },
|
{"innodb_additional_mem_pool_size", (char*) &innobase_additional_mem_pool_size, SHOW_LONG },
|
||||||
|
{sys_innodb_autoextend_increment.name, (char*) &sys_innodb_autoextend_increment, SHOW_SYS},
|
||||||
{"innodb_buffer_pool_size", (char*) &innobase_buffer_pool_size, SHOW_LONG },
|
{"innodb_buffer_pool_size", (char*) &innobase_buffer_pool_size, SHOW_LONG },
|
||||||
{"innodb_data_file_path", (char*) &innobase_data_file_path, SHOW_CHAR_PTR},
|
{"innodb_data_file_path", (char*) &innobase_data_file_path, SHOW_CHAR_PTR},
|
||||||
{"innodb_data_home_dir", (char*) &innobase_data_home_dir, SHOW_CHAR_PTR},
|
{"innodb_data_home_dir", (char*) &innobase_data_home_dir, SHOW_CHAR_PTR},
|
||||||
|
Reference in New Issue
Block a user