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
f0fa1a6f
Commit
f0fa1a6f
authored
Apr 15, 2005
by
gbichot@quadita2.mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-5.0
into quadita2.mysql.com:/nfstmp1/guilhem/mysql-5.0-4ita
parents
45c42fdd
bc48cda5
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
52 additions
and
45 deletions
+52
-45
innobase/include/srv0srv.h
innobase/include/srv0srv.h
+6
-4
innobase/log/log0log.c
innobase/log/log0log.c
+4
-6
innobase/srv/srv0srv.c
innobase/srv/srv0srv.c
+7
-10
innobase/srv/srv0start.c
innobase/srv/srv0start.c
+9
-0
sql/ha_innodb.cc
sql/ha_innodb.cc
+2
-17
sql/ha_innodb.h
sql/ha_innodb.h
+2
-2
sql/mysqld.cc
sql/mysqld.cc
+18
-5
sql/set_var.cc
sql/set_var.cc
+4
-1
No files found.
innobase/include/srv0srv.h
View file @
f0fa1a6f
...
...
@@ -99,11 +99,13 @@ extern ulint srv_max_n_threads;
extern
lint
srv_conc_n_threads
;
extern
ibool
srv_fast_shutdown
;
extern
ibool
srv_very_fast_shutdown
;
/* if this TRUE, do not flush the
extern
ulint
srv_fast_shutdown
;
/* If this is 1, do not do a
purge and index buffer merge.
If this 2, do not even flush the
buffer pool to data files at the
shutdown; we effectively 'crash'
InnoDB */
shutdown: we effectively 'crash'
InnoDB (but lose no committed
transactions). */
extern
ibool
srv_innodb_status
;
extern
ibool
srv_use_doublewrite_buf
;
...
...
innobase/log/log0log.c
View file @
f0fa1a6f
...
...
@@ -3059,15 +3059,13 @@ logs_empty_and_mark_files_at_shutdown(void)
goto
loop
;
}
if
(
srv_
very_fast_shutdown
)
{
/* In
a 'very fast'
shutdown we do not flush the buffer pool:
if
(
srv_
fast_shutdown
==
2
)
{
/* In
this fastest
shutdown we do not flush the buffer pool:
it is essentially a 'crash' of the InnoDB server.
Make sure that the log is all flushed to disk, so that
Make sure that the log is all flushed to disk, so that
we can recover all committed transactions in a crash
recovery.
In a 'very fast' shutdown we do not flush the buffer pool:
it is essentially a 'crash' of the InnoDB server. Then we must
not write the lsn stamps to the data files, since at a
We must not write the lsn stamps to the data files, since at a
startup InnoDB deduces from the stamps if the previous
shutdown was clean. */
...
...
innobase/srv/srv0srv.c
View file @
f0fa1a6f
...
...
@@ -300,15 +300,12 @@ SQL query after it has once got the ticket at srv_conc_enter_innodb */
#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 */
/* If the following is set to 1 then we do not run purge and insert buffer
merge to completion before shutdown. If it is set to 2, do not even flush the
buffer pool to data files at the shutdown: we effectively 'crash'
InnoDB (but lose no committed transactions). */
ulint
srv_fast_shutdown
=
0
;
ibool
srv_fast_shutdown
=
FALSE
;
ibool
srv_very_fast_shutdown
=
FALSE
;
/* if this TRUE, do not flush the
buffer pool to data files at the
shutdown; we effectively 'crash'
InnoDB */
/* Generate a innodb_status.<pid> file */
ibool
srv_innodb_status
=
FALSE
;
...
...
@@ -2471,11 +2468,11 @@ srv_master_thread(
flush_loop:
srv_main_thread_op_info
=
"flushing buffer pool pages"
;
if
(
!
srv_very_fast_shutdown
)
{
if
(
srv_fast_shutdown
<
2
)
{
n_pages_flushed
=
buf_flush_batch
(
BUF_FLUSH_LIST
,
100
,
ut_dulint_max
);
}
else
{
/* In
a 'very fast'
shutdown we do not flush the buffer pool
/* In
the fastest
shutdown we do not flush the buffer pool
to data files: we set n_pages_flushed to 0 artificially. */
n_pages_flushed
=
0
;
...
...
innobase/srv/srv0start.c
View file @
f0fa1a6f
...
...
@@ -1729,6 +1729,15 @@ innobase_shutdown_for_mysql(void)
The step 1 is the real InnoDB shutdown. The remaining steps 2 - ...
just free data structures after the shutdown. */
if
(
srv_fast_shutdown
==
2
)
{
ut_print_timestamp
(
stderr
);
fprintf
(
stderr
,
" InnoDB: MySQL has requested a very fast shutdown without flushing "
"the InnoDB buffer pool to data files. At the next mysqld startup "
"InnoDB will do a crash recovery!
\n
"
);
}
#ifdef __NETWARE__
if
(
!
panic_shutdown
)
#endif
...
...
sql/ha_innodb.cc
View file @
f0fa1a6f
...
...
@@ -116,15 +116,12 @@ char* innobase_unix_file_flush_method = NULL;
values */
uint
innobase_flush_log_at_trx_commit
=
1
;
ulong
innobase_fast_shutdown
=
1
;
my_bool
innobase_log_archive
=
FALSE
;
/* unused */
my_bool
innobase_use_doublewrite
=
TRUE
;
my_bool
innobase_use_checksums
=
TRUE
;
my_bool
innobase_use_large_pages
=
FALSE
;
my_bool
innobase_use_native_aio
=
FALSE
;
my_bool
innobase_fast_shutdown
=
TRUE
;
my_bool
innobase_very_fast_shutdown
=
FALSE
;
/* this can be set to
1 just prior calling
innobase_end() */
my_bool
innobase_file_per_table
=
FALSE
;
my_bool
innobase_locks_unsafe_for_binlog
=
FALSE
;
my_bool
innobase_create_status_file
=
FALSE
;
...
...
@@ -1238,8 +1235,6 @@ innobase_init(void)
srv_lock_wait_timeout
=
(
ulint
)
innobase_lock_wait_timeout
;
srv_force_recovery
=
(
ulint
)
innobase_force_recovery
;
srv_fast_shutdown
=
(
ibool
)
innobase_fast_shutdown
;
srv_use_doublewrite_buf
=
(
ibool
)
innobase_use_doublewrite
;
srv_use_checksums
=
(
ibool
)
innobase_use_checksums
;
...
...
@@ -1330,17 +1325,7 @@ innobase_end(void)
#endif
if
(
innodb_inited
)
{
#ifndef __NETWARE__
/* NetWare can't close unclosed files, kill remaining
threads, etc, so we disable the very fast shutdown */
if
(
innobase_very_fast_shutdown
)
{
srv_very_fast_shutdown
=
TRUE
;
fprintf
(
stderr
,
"InnoDB: MySQL has requested a very fast shutdown without flushing
\n
"
"InnoDB: the InnoDB buffer pool to data files. At the next mysqld startup
\n
"
"InnoDB: InnoDB will do a crash recovery!
\n
"
);
}
#endif
srv_fast_shutdown
=
(
ulint
)
innobase_fast_shutdown
;
innodb_inited
=
0
;
if
(
innobase_shutdown_for_mysql
()
!=
DB_SUCCESS
)
{
err
=
1
;
...
...
sql/ha_innodb.h
View file @
f0fa1a6f
...
...
@@ -210,7 +210,7 @@ class ha_innobase: public handler
extern
struct
show_var_st
innodb_status_variables
[];
extern
uint
innobase_init_flags
,
innobase_lock_type
;
extern
uint
innobase_flush_log_at_trx_commit
;
extern
ulong
innobase_cache_size
;
extern
ulong
innobase_cache_size
,
innobase_fast_shutdown
;
extern
ulong
innobase_large_page_size
;
extern
char
*
innobase_home
,
*
innobase_tmpdir
,
*
innobase_logdir
;
extern
long
innobase_lock_scan_time
;
...
...
@@ -229,7 +229,7 @@ extern my_bool innobase_log_archive,
innobase_use_doublewrite
,
innobase_use_checksums
,
innobase_use_large_pages
,
innobase_use_native_aio
,
innobase_fast_shutdown
,
innobase_use_native_aio
,
innobase_file_per_table
,
innobase_locks_unsafe_for_binlog
,
innobase_create_status_file
;
extern
my_bool
innobase_very_fast_shutdown
;
/* set this to 1 just before
...
...
sql/mysqld.cc
View file @
f0fa1a6f
...
...
@@ -4494,8 +4494,24 @@ Disable with --skip-innodb-checksums.", (gptr*) &innobase_use_checksums,
Disable with --skip-innodb-doublewrite."
,
(
gptr
*
)
&
innobase_use_doublewrite
,
(
gptr
*
)
&
innobase_use_doublewrite
,
0
,
GET_BOOL
,
NO_ARG
,
1
,
0
,
0
,
0
,
0
,
0
},
{
"innodb_fast_shutdown"
,
OPT_INNODB_FAST_SHUTDOWN
,
"Speeds up server shutdown process."
,
(
gptr
*
)
&
innobase_fast_shutdown
,
(
gptr
*
)
&
innobase_fast_shutdown
,
0
,
GET_BOOL
,
OPT_ARG
,
1
,
0
,
0
,
0
,
0
,
0
},
"Speeds up the shutdown process of the InnoDB storage engine. Possible "
"values are 0, 1 (faster)"
/*
NetWare can't close unclosed files, can't automatically kill remaining
threads, etc, so on this OS we disable the crash-like InnoDB shutdown.
*/
#ifndef __NETWARE__
" or 2 (fastest - crash-like)"
#endif
"."
,
(
gptr
*
)
&
innobase_fast_shutdown
,
(
gptr
*
)
&
innobase_fast_shutdown
,
0
,
GET_ULONG
,
OPT_ARG
,
1
,
0
,
#ifndef __NETWARE__
2
,
#else
1
,
#endif
0
,
0
,
0
},
{
"innodb_file_per_table"
,
OPT_INNODB_FILE_PER_TABLE
,
"Stores each InnoDB table to an .ibd file in the database dir."
,
(
gptr
*
)
&
innobase_file_per_table
,
...
...
@@ -6510,9 +6526,6 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
case
OPT_INNODB_LOG_ARCHIVE
:
innobase_log_archive
=
argument
?
test
(
atoi
(
argument
))
:
1
;
break
;
case
OPT_INNODB_FAST_SHUTDOWN
:
innobase_fast_shutdown
=
argument
?
test
(
atoi
(
argument
))
:
1
;
break
;
#endif
/* HAVE_INNOBASE_DB */
case
OPT_MYISAM_RECOVER
:
{
...
...
sql/set_var.cc
View file @
f0fa1a6f
...
...
@@ -386,6 +386,8 @@ sys_var_thd_ulong sys_net_wait_timeout("wait_timeout",
&
SV
::
net_wait_timeout
);
#ifdef HAVE_INNOBASE_DB
sys_var_long_ptr
sys_innodb_fast_shutdown
(
"innodb_fast_shutdown"
,
&
innobase_fast_shutdown
);
sys_var_long_ptr
sys_innodb_max_dirty_pages_pct
(
"innodb_max_dirty_pages_pct"
,
&
srv_max_buf_pool_modified_pct
);
sys_var_long_ptr
sys_innodb_max_purge_lag
(
"innodb_max_purge_lag"
,
...
...
@@ -689,6 +691,7 @@ sys_var *sys_variables[]=
&
sys_tx_isolation
,
&
sys_os
,
#ifdef HAVE_INNOBASE_DB
&
sys_innodb_fast_shutdown
,
&
sys_innodb_max_dirty_pages_pct
,
&
sys_innodb_max_purge_lag
,
&
sys_innodb_table_locks
,
...
...
@@ -795,7 +798,7 @@ struct show_var_st init_vars[]= {
{
"innodb_data_file_path"
,
(
char
*
)
&
innobase_data_file_path
,
SHOW_CHAR_PTR
},
{
"innodb_data_home_dir"
,
(
char
*
)
&
innobase_data_home_dir
,
SHOW_CHAR_PTR
},
{
"innodb_doublewrite"
,
(
char
*
)
&
innobase_use_doublewrite
,
SHOW_MY_BOOL
},
{
"innodb_fast_shutdown"
,
(
char
*
)
&
innobase_fast_shutdown
,
SHOW_MY_BOOL
},
{
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_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
},
...
...
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