diff options
author | aivanov/alexi@mysql.com/mysqld.localdomain <> | 2006-07-29 07:17:33 +0400 |
---|---|---|
committer | aivanov/alexi@mysql.com/mysqld.localdomain <> | 2006-07-29 07:17:33 +0400 |
commit | 0bd3c297a40b10ea48d97bda3ab71859b1427188 (patch) | |
tree | 5cd3782315067f61e9824e040a984cf548847793 | |
parent | 7d3a584c03012681e6e15db50be84e04dbbc5ba6 (diff) | |
download | mariadb-git-0bd3c297a40b10ea48d97bda3ab71859b1427188.tar.gz |
Make innodb_flush_log_at_trx_commit a settable global variable.
-rw-r--r-- | sql/ha_innodb.cc | 4 | ||||
-rw-r--r-- | sql/ha_innodb.h | 2 | ||||
-rw-r--r-- | sql/mysqld.cc | 5 | ||||
-rw-r--r-- | sql/set_var.cc | 6 | ||||
-rw-r--r-- | storage/innobase/include/srv0srv.h | 2 | ||||
-rw-r--r-- | storage/innobase/srv/srv0srv.c | 2 |
6 files changed, 12 insertions, 9 deletions
diff --git a/sql/ha_innodb.cc b/sql/ha_innodb.cc index e920eb61c42..00a92e05ffb 100644 --- a/sql/ha_innodb.cc +++ b/sql/ha_innodb.cc @@ -168,7 +168,6 @@ char* innobase_unix_file_flush_method = NULL; /* Below we have boolean-valued start-up parameters, and their default values */ -uint innobase_flush_log_at_trx_commit = 1; ulong innobase_fast_shutdown = 1; my_bool innobase_log_archive = FALSE;/* unused */ my_bool innobase_use_doublewrite = TRUE; @@ -1517,7 +1516,6 @@ innobase_init(void) srv_log_archive_on = (ulint) innobase_log_archive; #endif /* UNIV_LOG_ARCHIVE */ srv_log_buffer_size = (ulint) innobase_log_buffer_size; - srv_flush_log_at_trx_commit = (ulint) innobase_flush_log_at_trx_commit; /* We set srv_pool_size here in units of 1 kB. InnoDB internally changes the value so that it becomes the number of database pages. */ @@ -1974,7 +1972,7 @@ innobase_commit_complete( trx->active_trans = 0; - if (srv_flush_log_at_trx_commit == 0) { + if (UNIV_UNLIKELY(srv_flush_log_at_trx_commit == 0)) { return(0); } diff --git a/sql/ha_innodb.h b/sql/ha_innodb.h index c7d698cbcf4..ba8560f717f 100644 --- a/sql/ha_innodb.h +++ b/sql/ha_innodb.h @@ -206,7 +206,6 @@ class ha_innobase: public handler }; extern SHOW_VAR innodb_status_variables[]; -extern uint innobase_flush_log_at_trx_commit; extern ulong innobase_fast_shutdown; extern ulong innobase_large_page_size; extern long innobase_mirrored_log_groups, innobase_log_files_in_group; @@ -243,6 +242,7 @@ extern ulong srv_n_free_tickets_to_enter; extern ulong srv_thread_sleep_delay; extern ulong srv_thread_concurrency; extern ulong srv_commit_concurrency; +extern ulong srv_flush_log_at_trx_commit; } int innobase_init(void); diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 3d10cf74668..7561943d197 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -402,6 +402,7 @@ extern ulong srv_n_free_tickets_to_enter; extern ulong srv_thread_sleep_delay; extern ulong srv_thread_concurrency; extern ulong srv_commit_concurrency; +extern ulong srv_flush_log_at_trx_commit; } #endif #ifdef WITH_BERKELEY_STORAGE_ENGINE @@ -5127,8 +5128,8 @@ Disable with --skip-innodb-doublewrite.", (gptr*) &innobase_use_doublewrite, (gptr*) &innobase_file_per_table, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, {"innodb_flush_log_at_trx_commit", OPT_INNODB_FLUSH_LOG_AT_TRX_COMMIT, "Set to 0 (write and flush once per second), 1 (write and flush at each commit) or 2 (write at commit, flush once per second).", - (gptr*) &innobase_flush_log_at_trx_commit, - (gptr*) &innobase_flush_log_at_trx_commit, + (gptr*) &srv_flush_log_at_trx_commit, + (gptr*) &srv_flush_log_at_trx_commit, 0, GET_ULONG, OPT_ARG, 1, 0, 2, 0, 0, 0}, {"innodb_flush_method", OPT_INNODB_FLUSH_METHOD, "With which method to flush data.", (gptr*) &innobase_unix_file_flush_method, diff --git a/sql/set_var.cc b/sql/set_var.cc index 1176a98713d..8753939070e 100644 --- a/sql/set_var.cc +++ b/sql/set_var.cc @@ -97,6 +97,7 @@ extern ulong srv_n_free_tickets_to_enter; extern ulong srv_thread_sleep_delay; extern ulong srv_thread_concurrency; extern ulong srv_commit_concurrency; +extern ulong srv_flush_log_at_trx_commit; } /* WITH_NDBCLUSTER_STORAGE_ENGINE */ @@ -517,6 +518,9 @@ sys_var_long_ptr sys_innodb_thread_concurrency("innodb_thread_concurrency", &srv_thread_concurrency); sys_var_long_ptr sys_innodb_commit_concurrency("innodb_commit_concurrency", &srv_commit_concurrency); +sys_var_long_ptr sys_innodb_flush_log_at_trx_commit( + "innodb_flush_log_at_trx_commit", + &srv_flush_log_at_trx_commit); /* Condition pushdown to storage engine */ sys_var_thd_bool @@ -838,7 +842,6 @@ SHOW_VAR init_vars[]= { {sys_innodb_fast_shutdown.name,(char*) &sys_innodb_fast_shutdown, SHOW_SYS}, {"innodb_file_io_threads", (char*) &innobase_file_io_threads, SHOW_LONG }, {"innodb_file_per_table", (char*) &innobase_file_per_table, SHOW_MY_BOOL}, - {"innodb_flush_log_at_trx_commit", (char*) &innobase_flush_log_at_trx_commit, SHOW_INT}, {"innodb_flush_method", (char*) &innobase_unix_file_flush_method, SHOW_CHAR_PTR}, {"innodb_force_recovery", (char*) &innobase_force_recovery, SHOW_LONG }, {"innodb_lock_wait_timeout", (char*) &innobase_lock_wait_timeout, SHOW_LONG }, @@ -858,6 +861,7 @@ SHOW_VAR init_vars[]= { {sys_innodb_table_locks.name, (char*) &sys_innodb_table_locks, SHOW_SYS}, {sys_innodb_thread_concurrency.name, (char*) &sys_innodb_thread_concurrency, SHOW_SYS}, {sys_innodb_thread_sleep_delay.name, (char*) &sys_innodb_thread_sleep_delay, SHOW_SYS}, + {sys_innodb_flush_log_at_trx_commit.name, (char*) &sys_innodb_flush_log_at_trx_commit, SHOW_SYS}, {sys_interactive_timeout.name,(char*) &sys_interactive_timeout, SHOW_SYS}, {sys_join_buffer_size.name, (char*) &sys_join_buffer_size, SHOW_SYS}, {sys_key_buffer_size.name, (char*) &sys_key_buffer_size, SHOW_SYS}, diff --git a/storage/innobase/include/srv0srv.h b/storage/innobase/include/srv0srv.h index dc1f2d96d9d..9b617841f4c 100644 --- a/storage/innobase/include/srv0srv.h +++ b/storage/innobase/include/srv0srv.h @@ -80,7 +80,7 @@ extern ulint srv_n_log_groups; extern ulint srv_n_log_files; extern ulint srv_log_file_size; extern ulint srv_log_buffer_size; -extern ulint srv_flush_log_at_trx_commit; +extern ulong srv_flush_log_at_trx_commit; extern byte srv_latin1_ordering[256];/* The sort order table of the latin1 character set */ diff --git a/storage/innobase/srv/srv0srv.c b/storage/innobase/srv/srv0srv.c index c7bff806674..a475db031a3 100644 --- a/storage/innobase/srv/srv0srv.c +++ b/storage/innobase/srv/srv0srv.c @@ -116,7 +116,7 @@ ulint srv_n_log_groups = ULINT_MAX; ulint srv_n_log_files = ULINT_MAX; ulint srv_log_file_size = ULINT_MAX; /* size in database pages */ ulint srv_log_buffer_size = ULINT_MAX; /* size in database pages */ -ulint srv_flush_log_at_trx_commit = 1; +ulong srv_flush_log_at_trx_commit = 1; byte srv_latin1_ordering[256] /* The sort order table of the latin1 character set. The following table is |