set_var.cc, mysqld.cc, ha_innodb.h, innodb.test, innodb.result:

  Create new innodb_sync_spin_loops variable
parent 4cbe3225
...@@ -1715,5 +1715,20 @@ Innodb_row_lock_time_max 0 ...@@ -1715,5 +1715,20 @@ Innodb_row_lock_time_max 0
show status like "Innodb_row_lock_time_avg"; show status like "Innodb_row_lock_time_avg";
Variable_name Value Variable_name Value
Innodb_row_lock_time_avg 0 Innodb_row_lock_time_avg 0
show variables like "innodb_sync_spin_loops";
Variable_name Value
innodb_sync_spin_loops 20
set global innodb_sync_spin_loops=1000;
show variables like "innodb_sync_spin_loops";
Variable_name Value
innodb_sync_spin_loops 1000
set global innodb_sync_spin_loops=0;
show variables like "innodb_sync_spin_loops";
Variable_name Value
innodb_sync_spin_loops 0
set global innodb_sync_spin_loops=20;
show variables like "innodb_sync_spin_loops";
Variable_name Value
innodb_sync_spin_loops 20
create table t1 (v varchar(16384)) engine=innodb; create table t1 (v varchar(16384)) engine=innodb;
ERROR 42000: Column length too big for column 'v' (max = 255); use BLOB instead ERROR 42000: Column length too big for column 'v' (max = 255); use BLOB instead
...@@ -1218,6 +1218,15 @@ show status like "Innodb_row_lock_time"; ...@@ -1218,6 +1218,15 @@ show status like "Innodb_row_lock_time";
show status like "Innodb_row_lock_time_max"; show status like "Innodb_row_lock_time_max";
show status like "Innodb_row_lock_time_avg"; show status like "Innodb_row_lock_time_avg";
# Test for innodb_sync_spin_loops variable
show variables like "innodb_sync_spin_loops";
set global innodb_sync_spin_loops=1000;
show variables like "innodb_sync_spin_loops";
set global innodb_sync_spin_loops=0;
show variables like "innodb_sync_spin_loops";
set global innodb_sync_spin_loops=20;
show variables like "innodb_sync_spin_loops";
# #
# Test varchar # Test varchar
# #
......
...@@ -212,6 +212,7 @@ extern "C" { ...@@ -212,6 +212,7 @@ 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 ulong srv_auto_extend_increment;
extern ulong srv_n_spin_wait_rounds;
extern ulong srv_max_purge_lag; extern ulong srv_max_purge_lag;
} }
......
...@@ -4199,6 +4199,7 @@ enum options_mysqld ...@@ -4199,6 +4199,7 @@ enum options_mysqld
OPT_INNODB_TABLE_LOCKS, OPT_INNODB_TABLE_LOCKS,
OPT_INNODB_OPEN_FILES, OPT_INNODB_OPEN_FILES,
OPT_INNODB_AUTOEXTEND_INCREMENT, OPT_INNODB_AUTOEXTEND_INCREMENT,
OPT_INNODB_SYNC_SPIN_LOOPS,
OPT_BDB_CACHE_SIZE, OPT_BDB_CACHE_SIZE,
OPT_BDB_LOG_BUFFER_SIZE, OPT_BDB_LOG_BUFFER_SIZE,
OPT_BDB_MAX_LOCK, OPT_BDB_MAX_LOCK,
...@@ -5044,6 +5045,11 @@ log and this option does nothing anymore.", ...@@ -5044,6 +5045,11 @@ log and this option does nothing anymore.",
"How many files at the maximum InnoDB keeps open at the same time.", "How many files at the maximum InnoDB keeps open at the same time.",
(gptr*) &innobase_open_files, (gptr*) &innobase_open_files, 0, (gptr*) &innobase_open_files, (gptr*) &innobase_open_files, 0,
GET_LONG, REQUIRED_ARG, 300L, 10L, ~0L, 0, 1L, 0}, GET_LONG, REQUIRED_ARG, 300L, 10L, ~0L, 0, 1L, 0},
{"innodb_sync_spin_loops", OPT_INNODB_SYNC_SPIN_LOOPS,
"Count of spin-loop rounds in InnoDB mutexes",
(gptr*) &srv_n_spin_wait_rounds,
(gptr*) &srv_n_spin_wait_rounds,
0, GET_LONG, REQUIRED_ARG, 20L, 0L, ~0L, 0, 1L, 0},
#ifdef HAVE_REPLICATION #ifdef HAVE_REPLICATION
/* /*
Disabled for the 4.1.3 release. Disabling just this paragraph of code is Disabled for the 4.1.3 release. Disabling just this paragraph of code is
......
...@@ -378,6 +378,8 @@ sys_var_thd_bool sys_innodb_table_locks("innodb_table_locks", ...@@ -378,6 +378,8 @@ sys_var_thd_bool sys_innodb_table_locks("innodb_table_locks",
&SV::innodb_table_locks); &SV::innodb_table_locks);
sys_var_long_ptr sys_innodb_autoextend_increment("innodb_autoextend_increment", sys_var_long_ptr sys_innodb_autoextend_increment("innodb_autoextend_increment",
&srv_auto_extend_increment); &srv_auto_extend_increment);
sys_var_long_ptr sys_innodb_sync_spin_loops("innodb_sync_spin_loops",
&srv_n_spin_wait_rounds);
#endif #endif
#ifdef HAVE_NDBCLUSTER_DB #ifdef HAVE_NDBCLUSTER_DB
...@@ -651,6 +653,7 @@ sys_var *sys_variables[]= ...@@ -651,6 +653,7 @@ sys_var *sys_variables[]=
&sys_innodb_table_locks, &sys_innodb_table_locks,
&sys_innodb_max_purge_lag, &sys_innodb_max_purge_lag,
&sys_innodb_autoextend_increment, &sys_innodb_autoextend_increment,
&sys_innodb_sync_spin_loops,
#endif #endif
#ifdef HAVE_NDBCLUSTER_DB #ifdef HAVE_NDBCLUSTER_DB
&sys_ndb_autoincrement_prefetch_sz, &sys_ndb_autoincrement_prefetch_sz,
...@@ -763,6 +766,7 @@ struct show_var_st init_vars[]= { ...@@ -763,6 +766,7 @@ struct show_var_st init_vars[]= {
{"innodb_mirrored_log_groups", (char*) &innobase_mirrored_log_groups, SHOW_LONG}, {"innodb_mirrored_log_groups", (char*) &innobase_mirrored_log_groups, SHOW_LONG},
{"innodb_open_files", (char*) &innobase_open_files, SHOW_LONG }, {"innodb_open_files", (char*) &innobase_open_files, SHOW_LONG },
{"innodb_thread_concurrency", (char*) &innobase_thread_concurrency, SHOW_LONG }, {"innodb_thread_concurrency", (char*) &innobase_thread_concurrency, SHOW_LONG },
{sys_innodb_sync_spin_loops.name, (char*) &sys_innodb_sync_spin_loops, SHOW_SYS},
#endif #endif
{sys_interactive_timeout.name,(char*) &sys_interactive_timeout, 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_join_buffer_size.name, (char*) &sys_join_buffer_size, SHOW_SYS},
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment