summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorunknown <marko@hundin.mysql.fi>2004-10-27 13:33:11 +0300
committerunknown <marko@hundin.mysql.fi>2004-10-27 13:33:11 +0300
commit743597ea96cbf227c2c5dd34b9837802d62ad834 (patch)
tree811cd8122c4f67f06ae87f7dde570b7aea9d484d /sql
parent9abe7d272bcd75ef4eb83a33f31a3c9b756317a1 (diff)
downloadmariadb-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.h1
-rw-r--r--sql/mysqld.cc6
-rw-r--r--sql/set_var.cc4
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},