Loading BitKeeper/etc/logging_ok +1 −0 Original line number Diff line number Diff line Loading @@ -244,6 +244,7 @@ venu@hundin.mysql.fi venu@myvenu.com venu@work.mysql.com vtkachenko@intelp4d.mysql.com vtkachenko@mail.mysql.com vva@eagle.mysql.r18.ru vva@genie.(none) vva@mysql.r18.ru Loading innobase/include/srv0srv.h +2 −0 Original line number Diff line number Diff line Loading @@ -134,6 +134,8 @@ extern ibool srv_lock_timeout_and_monitor_active; extern ibool srv_error_monitor_active; extern ulint srv_n_spin_wait_rounds; extern ulint srv_n_free_tickets_to_enter; extern ulint srv_thread_sleep_delay; extern ulint srv_spin_wait_delay; extern ibool srv_priority_boost; Loading innobase/srv/srv0srv.c +10 −6 Original line number Diff line number Diff line Loading @@ -297,8 +297,8 @@ srv_conc_slot_t* srv_conc_slots; /* array of wait /* Number of times a thread is allowed to enter InnoDB within the same SQL query after it has once got the ticket at srv_conc_enter_innodb */ #define SRV_FREE_TICKETS_TO_ENTER 500 #define SRV_FREE_TICKETS_TO_ENTER srv_n_free_tickets_to_enter #define SRV_THREAD_SLEEP_DELAY srv_thread_sleep_delay /*-----------------------*/ /* If the following is set TRUE then we do not run purge and insert buffer merge to completion before shutdown */ Loading Loading @@ -328,6 +328,8 @@ ulint srv_max_purge_lag = 0; /*-------------------------------------------*/ ulint srv_n_spin_wait_rounds = 20; ulint srv_n_free_tickets_to_enter = 500; ulint srv_thread_sleep_delay = 10000; ulint srv_spin_wait_delay = 5; ibool srv_priority_boost = TRUE; Loading Loading @@ -1025,8 +1027,8 @@ srv_conc_enter_innodb( return; } /* If the transaction is not holding resources, let it sleep for 50 milliseconds, and try again then */ /* If the transaction is not holding resources, let it sleep for SRV_THREAD_SLEEP_DELAY microseconds, and try again then */ if (!has_slept && !trx->has_search_latch && NULL == UT_LIST_GET_FIRST(trx->trx_locks)) { Loading @@ -1045,8 +1047,10 @@ srv_conc_enter_innodb( situations of lots of thread switches. Simply put some threads aside for a while to reduce the number of thread switches. */ os_thread_sleep(10000); if (SRV_THREAD_SLEEP_DELAY > 0) { os_thread_sleep(SRV_THREAD_SLEEP_DELAY); } trx->op_info = ""; Loading mysql-test/r/innodb.result +60 −0 Original line number Diff line number Diff line Loading @@ -1715,5 +1715,65 @@ Innodb_row_lock_time_max 0 show status like "Innodb_row_lock_time_avg"; Variable_name Value 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 show variables like "innodb_thread_concurrency"; Variable_name Value innodb_thread_concurrency 8 set global innodb_thread_concurrency=1000; show variables like "innodb_thread_concurrency"; Variable_name Value innodb_thread_concurrency 1000 set global innodb_thread_concurrency=0; show variables like "innodb_thread_concurrency"; Variable_name Value innodb_thread_concurrency 1 set global innodb_thread_concurrency=16; show variables like "innodb_thread_concurrency"; Variable_name Value innodb_thread_concurrency 16 show variables like "innodb_concurrency_tickets"; Variable_name Value innodb_concurrency_tickets 500 set global innodb_concurrency_tickets=1000; show variables like "innodb_concurrency_tickets"; Variable_name Value innodb_concurrency_tickets 1000 set global innodb_concurrency_tickets=0; show variables like "innodb_concurrency_tickets"; Variable_name Value innodb_concurrency_tickets 1 set global innodb_concurrency_tickets=500; show variables like "innodb_concurrency_tickets"; Variable_name Value innodb_concurrency_tickets 500 show variables like "innodb_thread_sleep_delay"; Variable_name Value innodb_thread_sleep_delay 10000 set global innodb_thread_sleep_delay=100000; show variables like "innodb_thread_sleep_delay"; Variable_name Value innodb_thread_sleep_delay 100000 set global innodb_thread_sleep_delay=0; show variables like "innodb_thread_sleep_delay"; Variable_name Value innodb_thread_sleep_delay 0 set global innodb_thread_sleep_delay=10000; show variables like "innodb_thread_sleep_delay"; Variable_name Value innodb_thread_sleep_delay 10000 create table t1 (v varchar(16384)) engine=innodb; ERROR 42000: Column length too big for column 'v' (max = 255); use BLOB instead mysql-test/t/innodb.test +36 −0 Original line number Diff line number Diff line Loading @@ -1218,6 +1218,42 @@ show status like "Innodb_row_lock_time"; show status like "Innodb_row_lock_time_max"; 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 for innodb_thread_concurrency variable show variables like "innodb_thread_concurrency"; set global innodb_thread_concurrency=1000; show variables like "innodb_thread_concurrency"; set global innodb_thread_concurrency=0; show variables like "innodb_thread_concurrency"; set global innodb_thread_concurrency=16; show variables like "innodb_thread_concurrency"; # Test for innodb_concurrency_tickets variable show variables like "innodb_concurrency_tickets"; set global innodb_concurrency_tickets=1000; show variables like "innodb_concurrency_tickets"; set global innodb_concurrency_tickets=0; show variables like "innodb_concurrency_tickets"; set global innodb_concurrency_tickets=500; show variables like "innodb_concurrency_tickets"; # Test for innodb_thread_sleep_delay variable show variables like "innodb_thread_sleep_delay"; set global innodb_thread_sleep_delay=100000; show variables like "innodb_thread_sleep_delay"; set global innodb_thread_sleep_delay=0; show variables like "innodb_thread_sleep_delay"; set global innodb_thread_sleep_delay=10000; show variables like "innodb_thread_sleep_delay"; # # Test varchar # Loading Loading
BitKeeper/etc/logging_ok +1 −0 Original line number Diff line number Diff line Loading @@ -244,6 +244,7 @@ venu@hundin.mysql.fi venu@myvenu.com venu@work.mysql.com vtkachenko@intelp4d.mysql.com vtkachenko@mail.mysql.com vva@eagle.mysql.r18.ru vva@genie.(none) vva@mysql.r18.ru Loading
innobase/include/srv0srv.h +2 −0 Original line number Diff line number Diff line Loading @@ -134,6 +134,8 @@ extern ibool srv_lock_timeout_and_monitor_active; extern ibool srv_error_monitor_active; extern ulint srv_n_spin_wait_rounds; extern ulint srv_n_free_tickets_to_enter; extern ulint srv_thread_sleep_delay; extern ulint srv_spin_wait_delay; extern ibool srv_priority_boost; Loading
innobase/srv/srv0srv.c +10 −6 Original line number Diff line number Diff line Loading @@ -297,8 +297,8 @@ srv_conc_slot_t* srv_conc_slots; /* array of wait /* Number of times a thread is allowed to enter InnoDB within the same SQL query after it has once got the ticket at srv_conc_enter_innodb */ #define SRV_FREE_TICKETS_TO_ENTER 500 #define SRV_FREE_TICKETS_TO_ENTER srv_n_free_tickets_to_enter #define SRV_THREAD_SLEEP_DELAY srv_thread_sleep_delay /*-----------------------*/ /* If the following is set TRUE then we do not run purge and insert buffer merge to completion before shutdown */ Loading Loading @@ -328,6 +328,8 @@ ulint srv_max_purge_lag = 0; /*-------------------------------------------*/ ulint srv_n_spin_wait_rounds = 20; ulint srv_n_free_tickets_to_enter = 500; ulint srv_thread_sleep_delay = 10000; ulint srv_spin_wait_delay = 5; ibool srv_priority_boost = TRUE; Loading Loading @@ -1025,8 +1027,8 @@ srv_conc_enter_innodb( return; } /* If the transaction is not holding resources, let it sleep for 50 milliseconds, and try again then */ /* If the transaction is not holding resources, let it sleep for SRV_THREAD_SLEEP_DELAY microseconds, and try again then */ if (!has_slept && !trx->has_search_latch && NULL == UT_LIST_GET_FIRST(trx->trx_locks)) { Loading @@ -1045,8 +1047,10 @@ srv_conc_enter_innodb( situations of lots of thread switches. Simply put some threads aside for a while to reduce the number of thread switches. */ os_thread_sleep(10000); if (SRV_THREAD_SLEEP_DELAY > 0) { os_thread_sleep(SRV_THREAD_SLEEP_DELAY); } trx->op_info = ""; Loading
mysql-test/r/innodb.result +60 −0 Original line number Diff line number Diff line Loading @@ -1715,5 +1715,65 @@ Innodb_row_lock_time_max 0 show status like "Innodb_row_lock_time_avg"; Variable_name Value 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 show variables like "innodb_thread_concurrency"; Variable_name Value innodb_thread_concurrency 8 set global innodb_thread_concurrency=1000; show variables like "innodb_thread_concurrency"; Variable_name Value innodb_thread_concurrency 1000 set global innodb_thread_concurrency=0; show variables like "innodb_thread_concurrency"; Variable_name Value innodb_thread_concurrency 1 set global innodb_thread_concurrency=16; show variables like "innodb_thread_concurrency"; Variable_name Value innodb_thread_concurrency 16 show variables like "innodb_concurrency_tickets"; Variable_name Value innodb_concurrency_tickets 500 set global innodb_concurrency_tickets=1000; show variables like "innodb_concurrency_tickets"; Variable_name Value innodb_concurrency_tickets 1000 set global innodb_concurrency_tickets=0; show variables like "innodb_concurrency_tickets"; Variable_name Value innodb_concurrency_tickets 1 set global innodb_concurrency_tickets=500; show variables like "innodb_concurrency_tickets"; Variable_name Value innodb_concurrency_tickets 500 show variables like "innodb_thread_sleep_delay"; Variable_name Value innodb_thread_sleep_delay 10000 set global innodb_thread_sleep_delay=100000; show variables like "innodb_thread_sleep_delay"; Variable_name Value innodb_thread_sleep_delay 100000 set global innodb_thread_sleep_delay=0; show variables like "innodb_thread_sleep_delay"; Variable_name Value innodb_thread_sleep_delay 0 set global innodb_thread_sleep_delay=10000; show variables like "innodb_thread_sleep_delay"; Variable_name Value innodb_thread_sleep_delay 10000 create table t1 (v varchar(16384)) engine=innodb; ERROR 42000: Column length too big for column 'v' (max = 255); use BLOB instead
mysql-test/t/innodb.test +36 −0 Original line number Diff line number Diff line Loading @@ -1218,6 +1218,42 @@ show status like "Innodb_row_lock_time"; show status like "Innodb_row_lock_time_max"; 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 for innodb_thread_concurrency variable show variables like "innodb_thread_concurrency"; set global innodb_thread_concurrency=1000; show variables like "innodb_thread_concurrency"; set global innodb_thread_concurrency=0; show variables like "innodb_thread_concurrency"; set global innodb_thread_concurrency=16; show variables like "innodb_thread_concurrency"; # Test for innodb_concurrency_tickets variable show variables like "innodb_concurrency_tickets"; set global innodb_concurrency_tickets=1000; show variables like "innodb_concurrency_tickets"; set global innodb_concurrency_tickets=0; show variables like "innodb_concurrency_tickets"; set global innodb_concurrency_tickets=500; show variables like "innodb_concurrency_tickets"; # Test for innodb_thread_sleep_delay variable show variables like "innodb_thread_sleep_delay"; set global innodb_thread_sleep_delay=100000; show variables like "innodb_thread_sleep_delay"; set global innodb_thread_sleep_delay=0; show variables like "innodb_thread_sleep_delay"; set global innodb_thread_sleep_delay=10000; show variables like "innodb_thread_sleep_delay"; # # Test varchar # Loading