diff options
author | unknown <marko@hundin.mysql.fi> | 2004-10-27 13:33:11 +0300 |
---|---|---|
committer | unknown <marko@hundin.mysql.fi> | 2004-10-27 13:33:11 +0300 |
commit | 743597ea96cbf227c2c5dd34b9837802d62ad834 (patch) | |
tree | 811cd8122c4f67f06ae87f7dde570b7aea9d484d /sql | |
parent | 9abe7d272bcd75ef4eb83a33f31a3c9b756317a1 (diff) | |
download | mariadb-git-743597ea96cbf227c2c5dd34b9837802d62ad834.tar.gz |
Backport innodb_max_purge_lag from 4.1
innobase/include/srv0srv.h:
Add configuration parameter srv_max_purge_lag.
Add global variable srv_dml_needed_delay.
innobase/include/trx0sys.h:
Add trx_sys->rseg_history_len
innobase/row/row0mysql.c:
Add row_mysql_delay_if_needed() for delaying INSERTs, UPDATEs and
DELETEs for srv_dml_needed_delay microseconds.
innobase/srv/srv0srv.c:
Define global variable srv_dml_needed_delay.
Define configuration parameter srv_max_purge_lag.
innobase/trx/trx0purge.c:
Update trx_sys->rseg_history_len.
trx_purge(): Compute srv_dml_needed_delay from srv_max_purge_lag
and trx_sys->rseg_history_len.
innobase/trx/trx0rseg.c:
Initialize trx_sys->rseg_history_len at InnoDB start-up.
sql/ha_innodb.h:
Add configuration parameter srv_max_purge_lag.
sql/mysqld.cc:
Add startup option innodb_max_purge_lag,
with default value 0 (meaning infinite, disabling the feature).
sql/set_var.cc:
Add global variable innodb_max_purge_lag.
Diffstat (limited to 'sql')
-rw-r--r-- | sql/ha_innodb.h | 1 | ||||
-rw-r--r-- | sql/mysqld.cc | 6 | ||||
-rw-r--r-- | sql/set_var.cc | 4 |
3 files changed, 11 insertions, 0 deletions
diff --git a/sql/ha_innodb.h b/sql/ha_innodb.h index 5736f70c65c..74acc0640c9 100644 --- a/sql/ha_innodb.h +++ b/sql/ha_innodb.h @@ -207,6 +207,7 @@ extern my_bool innobase_log_archive, innobase_create_status_file; extern "C" { extern ulong srv_max_buf_pool_modified_pct; +extern ulong srv_max_purge_lag; } extern TYPELIB innobase_lock_typelib; diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 5838bd909dd..d36b441ac9a 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -3520,6 +3520,7 @@ enum options_mysqld { OPT_INNODB_LOG_BUFFER_SIZE, OPT_INNODB_BUFFER_POOL_SIZE, OPT_INNODB_ADDITIONAL_MEM_POOL_SIZE, + OPT_INNODB_MAX_PURGE_LAG, OPT_INNODB_FILE_IO_THREADS, OPT_INNODB_LOCK_WAIT_TIMEOUT, OPT_INNODB_THREAD_CONCURRENCY, @@ -3700,6 +3701,11 @@ struct my_option my_long_options[] = {"innodb_max_dirty_pages_pct", OPT_INNODB_MAX_DIRTY_PAGES_PCT, "Percentage of dirty pages allowed in bufferpool", (gptr*) &srv_max_buf_pool_modified_pct, (gptr*) &srv_max_buf_pool_modified_pct, 0, GET_ULONG, REQUIRED_ARG, 90, 0, 100, 0, 0, 0}, + {"innodb_max_purge_lag", OPT_INNODB_MAX_PURGE_LAG, + "", + (gptr*) &srv_max_purge_lag, + (gptr*) &srv_max_purge_lag, 0, GET_LONG, REQUIRED_ARG, 0, 0, ~0L, + 0, 1L, 0}, {"innodb_table_locks", OPT_INNODB_TABLE_LOCKS, "If Innodb should enforce LOCK TABLE", (gptr*) &global_system_variables.innodb_table_locks, diff --git a/sql/set_var.cc b/sql/set_var.cc index a6a5ea72c71..d5aadbfbdab 100644 --- a/sql/set_var.cc +++ b/sql/set_var.cc @@ -263,6 +263,8 @@ sys_var_thd_ulong sys_net_wait_timeout("wait_timeout", #ifdef HAVE_INNOBASE_DB sys_var_long_ptr sys_innodb_max_dirty_pages_pct("innodb_max_dirty_pages_pct", &srv_max_buf_pool_modified_pct); +sys_var_long_ptr sys_innodb_max_purge_lag("innodb_max_purge_lag", + &srv_max_purge_lag); sys_var_thd_bool sys_innodb_table_locks("innodb_table_locks", &SV::innodb_table_locks); #endif @@ -451,6 +453,7 @@ sys_var *sys_variables[]= &sys_os, #ifdef HAVE_INNOBASE_DB &sys_innodb_max_dirty_pages_pct, + &sys_innodb_max_purge_lag, &sys_innodb_table_locks, #endif &sys_unique_checks @@ -523,6 +526,7 @@ struct show_var_st init_vars[]= { {"innodb_log_group_home_dir", (char*) &innobase_log_group_home_dir, SHOW_CHAR_PTR}, {"innodb_mirrored_log_groups", (char*) &innobase_mirrored_log_groups, SHOW_LONG}, {sys_innodb_max_dirty_pages_pct.name, (char*) &sys_innodb_max_dirty_pages_pct, SHOW_SYS}, + {sys_innodb_max_purge_lag.name, (char*) &sys_innodb_max_purge_lag, SHOW_SYS}, {sys_innodb_table_locks.name, (char*) &sys_innodb_table_locks, SHOW_SYS}, #endif {sys_interactive_timeout.name,(char*) &sys_interactive_timeout, SHOW_SYS}, |