summaryrefslogtreecommitdiff
path: root/innobase/srv
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 /innobase/srv
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 'innobase/srv')
-rw-r--r--innobase/srv/srv0srv.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/innobase/srv/srv0srv.c b/innobase/srv/srv0srv.c
index 0643ab96c1d..0a814268a36 100644
--- a/innobase/srv/srv0srv.c
+++ b/innobase/srv/srv0srv.c
@@ -58,6 +58,10 @@ ulint srv_activity_count = 0;
/* The following is the maximum allowed duration of a lock wait. */
ulint srv_fatal_semaphore_wait_threshold = 600;
+/* How much data manipulation language (DML) statements need to be delayed,
+in microseconds, in order to reduce the lagging of the purge thread. */
+ulint srv_dml_needed_delay = 0;
+
ibool srv_lock_timeout_and_monitor_active = FALSE;
ibool srv_error_monitor_active = FALSE;
@@ -841,6 +845,8 @@ srv_general_init(void)
/*======================= InnoDB Server FIFO queue =======================*/
+/* Maximum allowable purge history length. <=0 means 'infinite'. */
+ulint srv_max_purge_lag = 0;
/*************************************************************************
Puts an OS thread to wait if there are too many concurrent threads