Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
6fad448a
Commit
6fad448a
authored
Jan 18, 2006
by
pem@mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge mysql.com:/extern/mysql/bk/mysql-5.0
into mysql.com:/extern/mysql/work/bug14834/mysql-5.0
parents
5cf8418b
5f7279d0
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
26 additions
and
22 deletions
+26
-22
innobase/include/srv0srv.h
innobase/include/srv0srv.h
+1
-2
innobase/srv/srv0srv.c
innobase/srv/srv0srv.c
+6
-5
mysql-test/r/innodb.result
mysql-test/r/innodb.result
+3
-3
mysql-test/t/innodb.test
mysql-test/t/innodb.test
+1
-1
sql/ha_innodb.cc
sql/ha_innodb.cc
+3
-5
sql/ha_innodb.h
sql/ha_innodb.h
+1
-1
sql/mysqld.cc
sql/mysqld.cc
+6
-4
sql/set_var.cc
sql/set_var.cc
+5
-1
No files found.
innobase/include/srv0srv.h
View file @
6fad448a
...
@@ -77,7 +77,7 @@ extern ulint srv_n_log_groups;
...
@@ -77,7 +77,7 @@ extern ulint srv_n_log_groups;
extern
ulint
srv_n_log_files
;
extern
ulint
srv_n_log_files
;
extern
ulint
srv_log_file_size
;
extern
ulint
srv_log_file_size
;
extern
ulint
srv_log_buffer_size
;
extern
ulint
srv_log_buffer_size
;
extern
ul
int
srv_flush_log_at_trx_commit
;
extern
ul
ong
srv_flush_log_at_trx_commit
;
extern
byte
srv_latin1_ordering
[
256
];
/* The sort order table of the latin1
extern
byte
srv_latin1_ordering
[
256
];
/* The sort order table of the latin1
character set */
character set */
...
@@ -195,7 +195,6 @@ extern mutex_t* kernel_mutex_temp;/* mutex protecting the server, trx structs,
...
@@ -195,7 +195,6 @@ extern mutex_t* kernel_mutex_temp;/* mutex protecting the server, trx structs,
#define kernel_mutex (*kernel_mutex_temp)
#define kernel_mutex (*kernel_mutex_temp)
#define SRV_MAX_N_IO_THREADS 100
#define SRV_MAX_N_IO_THREADS 100
#define SRV_CONCURRENCY_THRESHOLD 20
/* Array of English strings describing the current state of an
/* Array of English strings describing the current state of an
i/o handler thread */
i/o handler thread */
...
...
innobase/srv/srv0srv.c
View file @
6fad448a
...
@@ -113,7 +113,7 @@ ulint srv_n_log_groups = ULINT_MAX;
...
@@ -113,7 +113,7 @@ ulint srv_n_log_groups = ULINT_MAX;
ulint
srv_n_log_files
=
ULINT_MAX
;
ulint
srv_n_log_files
=
ULINT_MAX
;
ulint
srv_log_file_size
=
ULINT_MAX
;
/* size in database pages */
ulint
srv_log_file_size
=
ULINT_MAX
;
/* size in database pages */
ulint
srv_log_buffer_size
=
ULINT_MAX
;
/* size in database pages */
ulint
srv_log_buffer_size
=
ULINT_MAX
;
/* size in database pages */
ul
int
srv_flush_log_at_trx_commit
=
1
;
ul
ong
srv_flush_log_at_trx_commit
=
1
;
byte
srv_latin1_ordering
[
256
]
/* The sort order table of the latin1
byte
srv_latin1_ordering
[
256
]
/* The sort order table of the latin1
character set. The following table is
character set. The following table is
...
@@ -258,9 +258,10 @@ threads waiting for locks are not counted into the number because otherwise
...
@@ -258,9 +258,10 @@ threads waiting for locks are not counted into the number because otherwise
we could get a deadlock. MySQL creates a thread for each user session, and
we could get a deadlock. MySQL creates a thread for each user session, and
semaphore contention and convoy problems can occur withput this restriction.
semaphore contention and convoy problems can occur withput this restriction.
Value 10 should be good if there are less than 4 processors + 4 disks in the
Value 10 should be good if there are less than 4 processors + 4 disks in the
computer. Bigger computers need bigger values. */
computer. Bigger computers need bigger values. Value 0 will disable the
concurrency check. */
ulong
srv_thread_concurrency
=
SRV_CONCURRENCY_THRESHOLD
;
ulong
srv_thread_concurrency
=
0
;
ulong
srv_commit_concurrency
=
0
;
ulong
srv_commit_concurrency
=
0
;
os_fast_mutex_t
srv_conc_mutex
;
/* this mutex protects srv_conc data
os_fast_mutex_t
srv_conc_mutex
;
/* this mutex protects srv_conc data
...
@@ -1141,7 +1142,7 @@ srv_conc_force_enter_innodb(
...
@@ -1141,7 +1142,7 @@ srv_conc_force_enter_innodb(
trx_t
*
trx
)
/* in: transaction object associated with the
trx_t
*
trx
)
/* in: transaction object associated with the
thread */
thread */
{
{
if
(
srv_thread_concurrency
>=
SRV_CONCURRENCY_THRESHOLD
)
{
if
(
UNIV_LIKELY
(
!
srv_thread_concurrency
)
)
{
return
;
return
;
}
}
...
@@ -1167,7 +1168,7 @@ srv_conc_force_exit_innodb(
...
@@ -1167,7 +1168,7 @@ srv_conc_force_exit_innodb(
{
{
srv_conc_slot_t
*
slot
=
NULL
;
srv_conc_slot_t
*
slot
=
NULL
;
if
(
srv_thread_concurrency
>=
SRV_CONCURRENCY_THRESHOLD
)
{
if
(
UNIV_LIKELY
(
!
srv_thread_concurrency
)
)
{
return
;
return
;
}
}
...
...
mysql-test/r/innodb.result
View file @
6fad448a
...
@@ -1821,15 +1821,15 @@ Variable_name Value
...
@@ -1821,15 +1821,15 @@ Variable_name Value
innodb_sync_spin_loops 20
innodb_sync_spin_loops 20
show variables like "innodb_thread_concurrency";
show variables like "innodb_thread_concurrency";
Variable_name Value
Variable_name Value
innodb_thread_concurrency
2
0
innodb_thread_concurrency 0
set global innodb_thread_concurrency=100
0
;
set global innodb_thread_concurrency=100
1
;
show variables like "innodb_thread_concurrency";
show variables like "innodb_thread_concurrency";
Variable_name Value
Variable_name Value
innodb_thread_concurrency 1000
innodb_thread_concurrency 1000
set global innodb_thread_concurrency=0;
set global innodb_thread_concurrency=0;
show variables like "innodb_thread_concurrency";
show variables like "innodb_thread_concurrency";
Variable_name Value
Variable_name Value
innodb_thread_concurrency
1
innodb_thread_concurrency
0
set global innodb_thread_concurrency=16;
set global innodb_thread_concurrency=16;
show variables like "innodb_thread_concurrency";
show variables like "innodb_thread_concurrency";
Variable_name Value
Variable_name Value
...
...
mysql-test/t/innodb.test
View file @
6fad448a
...
@@ -1316,7 +1316,7 @@ show variables like "innodb_sync_spin_loops";
...
@@ -1316,7 +1316,7 @@ show variables like "innodb_sync_spin_loops";
# Test for innodb_thread_concurrency variable
# Test for innodb_thread_concurrency variable
show
variables
like
"innodb_thread_concurrency"
;
show
variables
like
"innodb_thread_concurrency"
;
set
global
innodb_thread_concurrency
=
100
0
;
set
global
innodb_thread_concurrency
=
100
1
;
show
variables
like
"innodb_thread_concurrency"
;
show
variables
like
"innodb_thread_concurrency"
;
set
global
innodb_thread_concurrency
=
0
;
set
global
innodb_thread_concurrency
=
0
;
show
variables
like
"innodb_thread_concurrency"
;
show
variables
like
"innodb_thread_concurrency"
;
...
...
sql/ha_innodb.cc
View file @
6fad448a
...
@@ -167,7 +167,6 @@ char* innobase_unix_file_flush_method = NULL;
...
@@ -167,7 +167,6 @@ char* innobase_unix_file_flush_method = NULL;
/* Below we have boolean-valued start-up parameters, and their default
/* Below we have boolean-valued start-up parameters, and their default
values */
values */
uint
innobase_flush_log_at_trx_commit
=
1
;
ulong
innobase_fast_shutdown
=
1
;
ulong
innobase_fast_shutdown
=
1
;
my_bool
innobase_log_archive
=
FALSE
;
/* unused */
my_bool
innobase_log_archive
=
FALSE
;
/* unused */
my_bool
innobase_use_doublewrite
=
TRUE
;
my_bool
innobase_use_doublewrite
=
TRUE
;
...
@@ -339,7 +338,7 @@ innodb_srv_conc_enter_innodb(
...
@@ -339,7 +338,7 @@ innodb_srv_conc_enter_innodb(
/*=========================*/
/*=========================*/
trx_t
*
trx
)
/* in: transaction handle */
trx_t
*
trx
)
/* in: transaction handle */
{
{
if
(
UNIV_LIKELY
(
srv_thread_concurrency
>=
SRV_CONCURRENCY_THRESHOLD
))
{
if
(
UNIV_LIKELY
(
!
srv_thread_concurrency
))
{
return
;
return
;
}
}
...
@@ -356,7 +355,7 @@ innodb_srv_conc_exit_innodb(
...
@@ -356,7 +355,7 @@ innodb_srv_conc_exit_innodb(
/*========================*/
/*========================*/
trx_t
*
trx
)
/* in: transaction handle */
trx_t
*
trx
)
/* in: transaction handle */
{
{
if
(
UNIV_LIKELY
(
srv_thread_concurrency
>=
SRV_CONCURRENCY_THRESHOLD
))
{
if
(
UNIV_LIKELY
(
!
srv_thread_concurrency
))
{
return
;
return
;
}
}
...
@@ -1341,7 +1340,6 @@ innobase_init(void)
...
@@ -1341,7 +1340,6 @@ innobase_init(void)
srv_log_archive_on
=
(
ulint
)
innobase_log_archive
;
srv_log_archive_on
=
(
ulint
)
innobase_log_archive
;
#endif
/* UNIV_LOG_ARCHIVE */
#endif
/* UNIV_LOG_ARCHIVE */
srv_log_buffer_size
=
(
ulint
)
innobase_log_buffer_size
;
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
/* 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. */
changes the value so that it becomes the number of database pages. */
...
@@ -1816,7 +1814,7 @@ innobase_commit_complete(
...
@@ -1816,7 +1814,7 @@ innobase_commit_complete(
trx
->
active_trans
=
0
;
trx
->
active_trans
=
0
;
if
(
srv_flush_log_at_trx_commit
==
0
)
{
if
(
UNIV_UNLIKELY
(
srv_flush_log_at_trx_commit
==
0
)
)
{
return
(
0
);
return
(
0
);
}
}
...
...
sql/ha_innodb.h
View file @
6fad448a
...
@@ -200,7 +200,6 @@ class ha_innobase: public handler
...
@@ -200,7 +200,6 @@ class ha_innobase: public handler
extern
struct
show_var_st
innodb_status_variables
[];
extern
struct
show_var_st
innodb_status_variables
[];
extern
uint
innobase_init_flags
,
innobase_lock_type
;
extern
uint
innobase_init_flags
,
innobase_lock_type
;
extern
uint
innobase_flush_log_at_trx_commit
;
extern
ulong
innobase_cache_size
,
innobase_fast_shutdown
;
extern
ulong
innobase_cache_size
,
innobase_fast_shutdown
;
extern
ulong
innobase_large_page_size
;
extern
ulong
innobase_large_page_size
;
extern
char
*
innobase_home
,
*
innobase_tmpdir
,
*
innobase_logdir
;
extern
char
*
innobase_home
,
*
innobase_tmpdir
,
*
innobase_logdir
;
...
@@ -238,6 +237,7 @@ extern ulong srv_n_free_tickets_to_enter;
...
@@ -238,6 +237,7 @@ extern ulong srv_n_free_tickets_to_enter;
extern
ulong
srv_thread_sleep_delay
;
extern
ulong
srv_thread_sleep_delay
;
extern
ulong
srv_thread_concurrency
;
extern
ulong
srv_thread_concurrency
;
extern
ulong
srv_commit_concurrency
;
extern
ulong
srv_commit_concurrency
;
extern
ulong
srv_flush_log_at_trx_commit
;
}
}
extern
TYPELIB
innobase_lock_typelib
;
extern
TYPELIB
innobase_lock_typelib
;
...
...
sql/mysqld.cc
View file @
6fad448a
...
@@ -4823,8 +4823,8 @@ Disable with --skip-innodb-doublewrite.", (gptr*) &innobase_use_doublewrite,
...
@@ -4823,8 +4823,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
},
(
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
,
{
"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)."
,
"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
*
)
&
srv
_flush_log_at_trx_commit
,
(
gptr
*
)
&
innobase
_flush_log_at_trx_commit
,
(
gptr
*
)
&
srv
_flush_log_at_trx_commit
,
0
,
GET_UINT
,
OPT_ARG
,
1
,
0
,
2
,
0
,
0
,
0
},
0
,
GET_UINT
,
OPT_ARG
,
1
,
0
,
2
,
0
,
0
,
0
},
{
"innodb_flush_method"
,
OPT_INNODB_FLUSH_METHOD
,
{
"innodb_flush_method"
,
OPT_INNODB_FLUSH_METHOD
,
"With which method to flush data."
,
(
gptr
*
)
&
innobase_unix_file_flush_method
,
"With which method to flush data."
,
(
gptr
*
)
&
innobase_unix_file_flush_method
,
...
@@ -5504,9 +5504,11 @@ log and this option does nothing anymore.",
...
@@ -5504,9 +5504,11 @@ log and this option does nothing anymore.",
(
gptr
*
)
&
srv_n_spin_wait_rounds
,
(
gptr
*
)
&
srv_n_spin_wait_rounds
,
0
,
GET_LONG
,
REQUIRED_ARG
,
20L
,
0L
,
~
0L
,
0
,
1L
,
0
},
0
,
GET_LONG
,
REQUIRED_ARG
,
20L
,
0L
,
~
0L
,
0
,
1L
,
0
},
{
"innodb_thread_concurrency"
,
OPT_INNODB_THREAD_CONCURRENCY
,
{
"innodb_thread_concurrency"
,
OPT_INNODB_THREAD_CONCURRENCY
,
"Helps in performance tuning in heavily concurrent environments."
,
"Helps in performance tuning in heavily concurrent environments. "
"Sets the maximum number of threads allowed inside InnoDB. Value 0"
" will disable the thread throttling."
,
(
gptr
*
)
&
srv_thread_concurrency
,
(
gptr
*
)
&
srv_thread_concurrency
,
(
gptr
*
)
&
srv_thread_concurrency
,
(
gptr
*
)
&
srv_thread_concurrency
,
0
,
GET_LONG
,
REQUIRED_ARG
,
20
,
1
,
1000
,
0
,
1
,
0
},
0
,
GET_LONG
,
REQUIRED_ARG
,
0
,
0
,
1000
,
0
,
1
,
0
},
{
"innodb_commit_concurrency"
,
OPT_INNODB_THREAD_CONCURRENCY
,
{
"innodb_commit_concurrency"
,
OPT_INNODB_THREAD_CONCURRENCY
,
"Helps in performance tuning in heavily concurrent environments."
,
"Helps in performance tuning in heavily concurrent environments."
,
(
gptr
*
)
&
srv_commit_concurrency
,
(
gptr
*
)
&
srv_commit_concurrency
,
(
gptr
*
)
&
srv_commit_concurrency
,
(
gptr
*
)
&
srv_commit_concurrency
,
...
...
sql/set_var.cc
View file @
6fad448a
...
@@ -422,6 +422,9 @@ sys_var_long_ptr sys_innodb_thread_concurrency("innodb_thread_concurrency",
...
@@ -422,6 +422,9 @@ sys_var_long_ptr sys_innodb_thread_concurrency("innodb_thread_concurrency",
&
srv_thread_concurrency
);
&
srv_thread_concurrency
);
sys_var_long_ptr
sys_innodb_commit_concurrency
(
"innodb_commit_concurrency"
,
sys_var_long_ptr
sys_innodb_commit_concurrency
(
"innodb_commit_concurrency"
,
&
srv_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
);
#endif
#endif
/* Condition pushdown to storage engine */
/* Condition pushdown to storage engine */
...
@@ -726,6 +729,7 @@ sys_var *sys_variables[]=
...
@@ -726,6 +729,7 @@ sys_var *sys_variables[]=
&
sys_innodb_thread_sleep_delay
,
&
sys_innodb_thread_sleep_delay
,
&
sys_innodb_thread_concurrency
,
&
sys_innodb_thread_concurrency
,
&
sys_innodb_commit_concurrency
,
&
sys_innodb_commit_concurrency
,
&
sys_innodb_flush_log_at_trx_commit
,
#endif
#endif
&
sys_trust_routine_creators
,
&
sys_trust_routine_creators
,
&
sys_trust_function_creators
,
&
sys_trust_function_creators
,
...
@@ -831,7 +835,6 @@ struct show_var_st init_vars[]= {
...
@@ -831,7 +835,6 @@ struct show_var_st init_vars[]= {
{
sys_innodb_fast_shutdown
.
name
,(
char
*
)
&
sys_innodb_fast_shutdown
,
SHOW_SYS
},
{
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_io_threads"
,
(
char
*
)
&
innobase_file_io_threads
,
SHOW_LONG
},
{
"innodb_file_per_table"
,
(
char
*
)
&
innobase_file_per_table
,
SHOW_MY_BOOL
},
{
"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_flush_method"
,
(
char
*
)
&
innobase_unix_file_flush_method
,
SHOW_CHAR_PTR
},
{
"innodb_force_recovery"
,
(
char
*
)
&
innobase_force_recovery
,
SHOW_LONG
},
{
"innodb_force_recovery"
,
(
char
*
)
&
innobase_force_recovery
,
SHOW_LONG
},
{
"innodb_lock_wait_timeout"
,
(
char
*
)
&
innobase_lock_wait_timeout
,
SHOW_LONG
},
{
"innodb_lock_wait_timeout"
,
(
char
*
)
&
innobase_lock_wait_timeout
,
SHOW_LONG
},
...
@@ -851,6 +854,7 @@ struct show_var_st init_vars[]= {
...
@@ -851,6 +854,7 @@ struct show_var_st init_vars[]= {
{
sys_innodb_table_locks
.
name
,
(
char
*
)
&
sys_innodb_table_locks
,
SHOW_SYS
},
{
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_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_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
},
#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
},
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment