mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
InnoDB: Make the srv_thread_concurrency checks more consistent.
This commit is contained in:
@ -182,6 +182,7 @@ 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 */
|
||||||
|
@ -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
|
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. */
|
||||||
|
|
||||||
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
|
os_fast_mutex_t srv_conc_mutex; /* this mutex protects srv_conc data
|
||||||
structures */
|
structures */
|
||||||
@ -983,12 +983,6 @@ srv_conc_enter_innodb(
|
|||||||
srv_conc_slot_t* slot = NULL;
|
srv_conc_slot_t* slot = NULL;
|
||||||
ulint i;
|
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
|
/* If trx has 'free tickets' to enter the engine left, then use one
|
||||||
such ticket */
|
such ticket */
|
||||||
|
|
||||||
@ -1134,7 +1128,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 >= 500) {
|
if (srv_thread_concurrency >= SRV_CONCURRENCY_THRESHOLD) {
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -1160,7 +1154,7 @@ srv_conc_force_exit_innodb(
|
|||||||
{
|
{
|
||||||
srv_conc_slot_t* slot = NULL;
|
srv_conc_slot_t* slot = NULL;
|
||||||
|
|
||||||
if (srv_thread_concurrency >= 500) {
|
if (srv_thread_concurrency >= SRV_CONCURRENCY_THRESHOLD) {
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -1212,11 +1206,6 @@ srv_conc_exit_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 >= 500) {
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (trx->n_tickets_to_enter_innodb > 0) {
|
if (trx->n_tickets_to_enter_innodb > 0) {
|
||||||
/* We will pretend the thread is still inside InnoDB though it
|
/* We will pretend the thread is still inside InnoDB though it
|
||||||
now leaves the InnoDB engine. In this way we save
|
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 */
|
trx_t* trx) /* in: transaction handle */
|
||||||
{
|
{
|
||||||
if (UNIV_LIKELY(srv_thread_concurrency >= 20)) {
|
if (UNIV_LIKELY(srv_thread_concurrency >= SRV_CONCURRENCY_THRESHOLD)) {
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -343,7 +343,7 @@ innodb_srv_conc_exit_innodb(
|
|||||||
/*========================*/
|
/*========================*/
|
||||||
trx_t* trx) /* in: transaction handle */
|
trx_t* trx) /* in: transaction handle */
|
||||||
{
|
{
|
||||||
if (UNIV_LIKELY(srv_thread_concurrency >= 20)) {
|
if (UNIV_LIKELY(srv_thread_concurrency >= SRV_CONCURRENCY_THRESHOLD)) {
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user