Commit f2203434 authored by unknown's avatar unknown

InnoDB: Make the srv_thread_concurrency checks more consistent.


innobase/include/srv0srv.h:
  Define SRV_CONCURRENCY_THRESHOLD
innobase/srv/srv0srv.c:
  Remove srv_thread_concurrency check from srv_conc_enter_innodb()
  and srv_conc_exit_innodb(), as the check is in the (only) caller
  of these functions, in ha_innodb.cc.
  srv_conc_force_enter_innodb(), srv_conc_force_exit_innodb():
  Check for srv_thread_concurrency >= SRV_CONCURRENCY_THRESHOLD
sql/ha_innodb.cc:
  Make use of SRV_CONCURRENCY_THRESHOLD
parent 527c8adb
......@@ -182,6 +182,7 @@ extern mutex_t* kernel_mutex_temp;/* mutex protecting the server, trx structs,
#define kernel_mutex (*kernel_mutex_temp)
#define SRV_MAX_N_IO_THREADS 100
#define SRV_CONCURRENCY_THRESHOLD 20
/* Array of English strings describing the current state of an
i/o handler thread */
......
......@@ -260,7 +260,7 @@ 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
computer. Bigger computers need bigger values. */
ulong srv_thread_concurrency = 8;
ulong srv_thread_concurrency = SRV_CONCURRENCY_THRESHOLD;
os_fast_mutex_t srv_conc_mutex; /* this mutex protects srv_conc data
structures */
......@@ -983,12 +983,6 @@ srv_conc_enter_innodb(
srv_conc_slot_t* slot = NULL;
ulint i;
if (srv_thread_concurrency >= 500) {
/* Disable the concurrency check */
return;
}
/* If trx has 'free tickets' to enter the engine left, then use one
such ticket */
......@@ -1134,7 +1128,7 @@ srv_conc_force_enter_innodb(
trx_t* trx) /* in: transaction object associated with the
thread */
{
if (srv_thread_concurrency >= 500) {
if (srv_thread_concurrency >= SRV_CONCURRENCY_THRESHOLD) {
return;
}
......@@ -1160,7 +1154,7 @@ srv_conc_force_exit_innodb(
{
srv_conc_slot_t* slot = NULL;
if (srv_thread_concurrency >= 500) {
if (srv_thread_concurrency >= SRV_CONCURRENCY_THRESHOLD) {
return;
}
......@@ -1212,11 +1206,6 @@ srv_conc_exit_innodb(
trx_t* trx) /* in: transaction object associated with the
thread */
{
if (srv_thread_concurrency >= 500) {
return;
}
if (trx->n_tickets_to_enter_innodb > 0) {
/* We will pretend the thread is still inside InnoDB though it
now leaves the InnoDB engine. In this way we save
......
......@@ -326,7 +326,7 @@ innodb_srv_conc_enter_innodb(
/*=========================*/
trx_t* trx) /* in: transaction handle */
{
if (UNIV_LIKELY(srv_thread_concurrency >= 20)) {
if (UNIV_LIKELY(srv_thread_concurrency >= SRV_CONCURRENCY_THRESHOLD)) {
return;
}
......@@ -343,7 +343,7 @@ innodb_srv_conc_exit_innodb(
/*========================*/
trx_t* trx) /* in: transaction handle */
{
if (UNIV_LIKELY(srv_thread_concurrency >= 20)) {
if (UNIV_LIKELY(srv_thread_concurrency >= SRV_CONCURRENCY_THRESHOLD)) {
return;
}
......
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