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
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
72ce1f50
Commit
72ce1f50
authored
Jan 12, 2005
by
paul@kite-hub.kitebird.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge paul@bk-internal.mysql.com:/home/bk/mysql-5.0
into kite-hub.kitebird.com:/src/extern/MySQL/bk/mysql-5.0
parents
e608d27f
924ec83b
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
177 additions
and
13 deletions
+177
-13
BitKeeper/etc/logging_ok
BitKeeper/etc/logging_ok
+1
-0
innobase/include/srv0srv.h
innobase/include/srv0srv.h
+2
-0
innobase/srv/srv0srv.c
innobase/srv/srv0srv.c
+10
-6
mysql-test/r/innodb.result
mysql-test/r/innodb.result
+60
-0
mysql-test/t/innodb.test
mysql-test/t/innodb.test
+36
-0
ndb/src/mgmsrv/ConfigInfo.cpp
ndb/src/mgmsrv/ConfigInfo.cpp
+26
-3
sql/ha_innodb.cc
sql/ha_innodb.cc
+1
-2
sql/ha_innodb.h
sql/ha_innodb.h
+4
-0
sql/mysqld.cc
sql/mysqld.cc
+21
-1
sql/set_var.cc
sql/set_var.cc
+16
-1
No files found.
BitKeeper/etc/logging_ok
View file @
72ce1f50
...
...
@@ -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
...
...
innobase/include/srv0srv.h
View file @
72ce1f50
...
...
@@ -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
;
...
...
innobase/srv/srv0srv.c
View file @
72ce1f50
...
...
@@ -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 */
...
...
@@ -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
;
...
...
@@ -1025,8 +1027,8 @@ retry:
return
;
}
/* If the transaction is not holding resources,
let it sleep for 50
milli
seconds, and try again then */
/* If the transaction is not holding resources,
let it sleep for SRV_THREAD_SLEEP_DELAY micro
seconds, and try again then */
if
(
!
has_slept
&&
!
trx
->
has_search_latch
&&
NULL
==
UT_LIST_GET_FIRST
(
trx
->
trx_locks
))
{
...
...
@@ -1045,8 +1047,10 @@ retry:
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
=
""
;
...
...
mysql-test/r/innodb.result
View file @
72ce1f50
...
...
@@ -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
View file @
72ce1f50
...
...
@@ -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
#
...
...
ndb/src/mgmsrv/ConfigInfo.cpp
View file @
72ce1f50
...
...
@@ -98,6 +98,7 @@ static bool fixDepricated(InitConfigFileParser::Context & ctx, const char *);
static
bool
saveInConfigValues
(
InitConfigFileParser
::
Context
&
ctx
,
const
char
*
);
static
bool
fixFileSystemPath
(
InitConfigFileParser
::
Context
&
ctx
,
const
char
*
data
);
static
bool
fixBackupDataDir
(
InitConfigFileParser
::
Context
&
ctx
,
const
char
*
data
);
static
bool
fixShmUniqueId
(
InitConfigFileParser
::
Context
&
ctx
,
const
char
*
data
);
const
ConfigInfo
::
SectionRule
ConfigInfo
::
m_SectionRules
[]
=
{
...
...
@@ -111,6 +112,8 @@ ConfigInfo::m_SectionRules[] = {
{
"REP"
,
transformNode
,
0
},
{
"EXTERNAL REP"
,
transformExtNode
,
0
},
{
MGM_TOKEN
,
fixShmUniqueId
,
0
},
{
"TCP"
,
checkConnectionSupport
,
0
},
{
"SHM"
,
checkConnectionSupport
,
0
},
{
"SCI"
,
checkConnectionSupport
,
0
},
...
...
@@ -3155,19 +3158,39 @@ fixPortNumber(InitConfigFileParser::Context & ctx, const char * data){
DBUG_RETURN
(
true
);
}
static
bool
fixShmUniqueId
(
InitConfigFileParser
::
Context
&
ctx
,
const
char
*
data
)
{
DBUG_ENTER
(
"fixShmUniqueId"
);
Uint32
nodes
=
0
;
ctx
.
m_userProperties
.
get
(
ctx
.
fname
,
&
nodes
);
if
(
nodes
==
1
)
// first management server
{
Uint32
portno
=
atoi
(
NDB_PORT
);
ctx
.
m_currentSection
->
get
(
"PortNumber"
,
&
portno
);
ctx
.
m_userProperties
.
put
(
"ShmUniqueId"
,
portno
);
}
DBUG_RETURN
(
true
);
}
static
bool
fixShmKey
(
InitConfigFileParser
::
Context
&
ctx
,
const
char
*
)
{
DBUG_ENTER
(
"fixShmKey"
);
Uint32
id1
=
0
,
id2
=
0
,
key
=
0
;
require
(
ctx
.
m_currentSection
->
get
(
"NodeId1"
,
&
id1
));
require
(
ctx
.
m_currentSection
->
get
(
"NodeId2"
,
&
id2
));
if
(
ctx
.
m_currentSection
->
get
(
"ShmKey"
,
&
key
))
return
true
;
{
DBUG_RETURN
(
true
);
}
key
=
(
id1
>
id2
?
id1
<<
16
|
id2
:
id2
<<
16
|
id1
);
require
(
ctx
.
m_userProperties
.
get
(
"ShmUniqueId"
,
&
key
));
key
=
key
<<
16
|
(
id1
>
id2
?
id1
<<
8
|
id2
:
id2
<<
8
|
id1
);
ctx
.
m_currentSection
->
put
(
"ShmKey"
,
key
);
return
true
;
DBUG_PRINT
(
"info"
,(
"Added ShmKey=0x%x"
,
key
));
DBUG_RETURN
(
true
);
}
/**
...
...
sql/ha_innodb.cc
View file @
72ce1f50
...
...
@@ -250,7 +250,7 @@ struct show_var_st innodb_status_variables[]= {
{
"rows_updated"
,
(
char
*
)
&
export_vars
.
innodb_rows_updated
,
SHOW_LONG
},
{
NullS
,
NullS
,
SHOW_LONG
}};
/* General functions */
/**********************************************************************
...
...
@@ -1150,7 +1150,6 @@ innobase_init(void)
srv_n_file_io_threads
=
(
ulint
)
innobase_file_io_threads
;
srv_lock_wait_timeout
=
(
ulint
)
innobase_lock_wait_timeout
;
srv_thread_concurrency
=
(
ulint
)
innobase_thread_concurrency
;
srv_force_recovery
=
(
ulint
)
innobase_force_recovery
;
srv_fast_shutdown
=
(
ibool
)
innobase_fast_shutdown
;
...
...
sql/ha_innodb.h
View file @
72ce1f50
...
...
@@ -212,7 +212,11 @@ extern "C" {
extern
ulong
srv_max_buf_pool_modified_pct
;
extern
ulong
srv_max_purge_lag
;
extern
ulong
srv_auto_extend_increment
;
extern
ulong
srv_n_spin_wait_rounds
;
extern
ulong
srv_n_free_tickets_to_enter
;
extern
ulong
srv_thread_sleep_delay
;
extern
ulong
srv_max_purge_lag
;
extern
ulong
srv_thread_concurrency
;
}
extern
TYPELIB
innobase_lock_typelib
;
...
...
sql/mysqld.cc
View file @
72ce1f50
...
...
@@ -4201,6 +4201,9 @@ enum options_mysqld
OPT_INNODB_TABLE_LOCKS
,
OPT_INNODB_OPEN_FILES
,
OPT_INNODB_AUTOEXTEND_INCREMENT
,
OPT_INNODB_SYNC_SPIN_LOOPS
,
OPT_INNODB_CONCURRENCY_TICKETS
,
OPT_INNODB_THREAD_SLEEP_DELAY
,
OPT_BDB_CACHE_SIZE
,
OPT_BDB_LOG_BUFFER_SIZE
,
OPT_BDB_MAX_LOCK
,
...
...
@@ -5046,6 +5049,17 @@ log and this option does nothing anymore.",
"How many files at the maximum InnoDB keeps open at the same time."
,
(
gptr
*
)
&
innobase_open_files
,
(
gptr
*
)
&
innobase_open_files
,
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
},
{
"innodb_concurrency_tickets"
,
OPT_INNODB_CONCURRENCY_TICKETS
,
"Number of times a thread is allowed to enter InnoDB within the same \
SQL query after it has once got the ticket"
,
(
gptr
*
)
&
srv_n_free_tickets_to_enter
,
(
gptr
*
)
&
srv_n_free_tickets_to_enter
,
0
,
GET_LONG
,
REQUIRED_ARG
,
500L
,
1L
,
~
0L
,
0
,
1L
,
0
},
#ifdef HAVE_REPLICATION
/*
Disabled for the 4.1.3 release. Disabling just this paragraph of code is
...
...
@@ -5068,8 +5082,14 @@ log and this option does nothing anymore.",
#endif
{
"innodb_thread_concurrency"
,
OPT_INNODB_THREAD_CONCURRENCY
,
"Helps in performance tuning in heavily concurrent environments."
,
(
gptr
*
)
&
innobase_thread_concurrency
,
(
gptr
*
)
&
innobase
_thread_concurrency
,
(
gptr
*
)
&
srv_thread_concurrency
,
(
gptr
*
)
&
srv
_thread_concurrency
,
0
,
GET_LONG
,
REQUIRED_ARG
,
8
,
1
,
1000
,
0
,
1
,
0
},
{
"innodb_thread_sleep_delay"
,
OPT_INNODB_THREAD_SLEEP_DELAY
,
"Time of innodb thread sleeping before joining InnoDB queue (usec). Value 0"
" disable a sleep"
,
(
gptr
*
)
&
srv_thread_sleep_delay
,
(
gptr
*
)
&
srv_thread_sleep_delay
,
0
,
GET_LONG
,
REQUIRED_ARG
,
10000L
,
0L
,
~
0L
,
0
,
1L
,
0
},
#endif
/* HAVE_INNOBASE_DB */
{
"interactive_timeout"
,
OPT_INTERACTIVE_TIMEOUT
,
"The number of seconds the server waits for activity on an interactive connection before closing it."
,
...
...
sql/set_var.cc
View file @
72ce1f50
...
...
@@ -378,6 +378,14 @@ sys_var_thd_bool sys_innodb_table_locks("innodb_table_locks",
&
SV
::
innodb_table_locks
);
sys_var_long_ptr
sys_innodb_autoextend_increment
(
"innodb_autoextend_increment"
,
&
srv_auto_extend_increment
);
sys_var_long_ptr
sys_innodb_sync_spin_loops
(
"innodb_sync_spin_loops"
,
&
srv_n_spin_wait_rounds
);
sys_var_long_ptr
sys_innodb_concurrency_tickets
(
"innodb_concurrency_tickets"
,
&
srv_n_free_tickets_to_enter
);
sys_var_long_ptr
sys_innodb_thread_sleep_delay
(
"innodb_thread_sleep_delay"
,
&
srv_thread_sleep_delay
);
sys_var_long_ptr
sys_innodb_thread_concurrency
(
"innodb_thread_concurrency"
,
&
srv_thread_concurrency
);
#endif
#ifdef HAVE_NDBCLUSTER_DB
...
...
@@ -651,6 +659,10 @@ sys_var *sys_variables[]=
&
sys_innodb_table_locks
,
&
sys_innodb_max_purge_lag
,
&
sys_innodb_autoextend_increment
,
&
sys_innodb_sync_spin_loops
,
&
sys_innodb_concurrency_tickets
,
&
sys_innodb_thread_sleep_delay
,
&
sys_innodb_thread_concurrency
,
#endif
#ifdef HAVE_NDBCLUSTER_DB
&
sys_ndb_autoincrement_prefetch_sz
,
...
...
@@ -742,6 +754,7 @@ struct show_var_st init_vars[]= {
{
"innodb_data_home_dir"
,
(
char
*
)
&
innobase_data_home_dir
,
SHOW_CHAR_PTR
},
{
"innodb_doublewrite"
,
(
char
*
)
&
innobase_use_doublewrite
,
SHOW_MY_BOOL
},
{
"innodb_checksums"
,
(
char
*
)
&
innobase_use_checksums
,
SHOW_MY_BOOL
},
{
sys_innodb_concurrency_tickets
.
name
,
(
char
*
)
&
sys_innodb_concurrency_tickets
,
SHOW_SYS
},
{
"innodb_fast_shutdown"
,
(
char
*
)
&
innobase_fast_shutdown
,
SHOW_MY_BOOL
},
{
"innodb_file_io_threads"
,
(
char
*
)
&
innobase_file_io_threads
,
SHOW_LONG
},
{
"innodb_file_per_table"
,
(
char
*
)
&
innobase_file_per_table
,
SHOW_MY_BOOL
},
...
...
@@ -760,8 +773,10 @@ struct show_var_st init_vars[]= {
{
sys_innodb_max_purge_lag
.
name
,
(
char
*
)
&
sys_innodb_max_purge_lag
,
SHOW_SYS
},
{
"innodb_mirrored_log_groups"
,
(
char
*
)
&
innobase_mirrored_log_groups
,
SHOW_LONG
},
{
"innodb_open_files"
,
(
char
*
)
&
innobase_open_files
,
SHOW_LONG
},
{
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_sync_spin_loops
.
name
,
(
char
*
)
&
sys_innodb_sync_spin_loops
,
SHOW_SYS
},
{
sys_innodb_table_locks
.
name
,
(
char
*
)
&
sys_innodb_table_locks
,
SHOW_SYS
},
{
"innodb_thread_concurrency"
,
(
char
*
)
&
innobase_thread_concurrency
,
SHOW_LONG
},
#endif
{
sys_interactive_timeout
.
name
,(
char
*
)
&
sys_interactive_timeout
,
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