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
ecb3518d
Commit
ecb3518d
authored
Aug 10, 2004
by
marko@hundin.mysql.fi
Browse files
Options
Browse Files
Download
Plain Diff
Merge marko@build.mysql.com:/home/bk/mysql-4.0
into hundin.mysql.fi:/home/marko/k/mysql-4.0
parents
9962749f
61c509fb
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
124 additions
and
25 deletions
+124
-25
innobase/dict/dict0dict.c
innobase/dict/dict0dict.c
+1
-0
innobase/include/os0file.h
innobase/include/os0file.h
+2
-2
innobase/include/srv0srv.h
innobase/include/srv0srv.h
+2
-0
innobase/lock/lock0lock.c
innobase/lock/lock0lock.c
+1
-0
innobase/os/os0file.c
innobase/os/os0file.c
+58
-8
innobase/srv/srv0srv.c
innobase/srv/srv0srv.c
+3
-0
innobase/srv/srv0start.c
innobase/srv/srv0start.c
+22
-12
sql/ha_innodb.cc
sql/ha_innodb.cc
+28
-2
sql/ha_innodb.h
sql/ha_innodb.h
+2
-1
sql/mysqld.cc
sql/mysqld.cc
+5
-0
No files found.
innobase/dict/dict0dict.c
View file @
ecb3518d
...
...
@@ -643,6 +643,7 @@ dict_init(void)
rw_lock_set_level
(
&
dict_operation_lock
,
SYNC_DICT_OPERATION
);
dict_foreign_err_file
=
os_file_create_tmpfile
();
ut_a
(
dict_foreign_err_file
);
mutex_create
(
&
dict_foreign_err_mutex
);
mutex_set_level
(
&
dict_foreign_err_mutex
,
SYNC_ANY_LATCH
);
}
...
...
innobase/include/os0file.h
View file @
ecb3518d
...
...
@@ -134,12 +134,12 @@ void
os_io_init_simple
(
void
);
/*===================*/
/***************************************************************************
Creates a temporary file.
In case of error, causes abnormal termination.
*/
Creates a temporary file. */
FILE
*
os_file_create_tmpfile
(
void
);
/*========================*/
/* out: temporary file handle (never NULL)
*/
/* out: temporary file handle, or NULL on error
*/
/********************************************************************
A simple function to open or create a file. */
...
...
innobase/include/srv0srv.h
View file @
ecb3518d
...
...
@@ -92,6 +92,8 @@ extern lint srv_conc_n_threads;
extern
ibool
srv_fast_shutdown
;
extern
ibool
srv_innodb_status
;
extern
ibool
srv_use_doublewrite_buf
;
extern
ibool
srv_set_thread_priorities
;
...
...
innobase/lock/lock0lock.c
View file @
ecb3518d
...
...
@@ -509,6 +509,7 @@ lock_sys_create(
/* hash_create_mutexes(lock_sys->rec_hash, 2, SYNC_REC_LOCK); */
lock_latest_err_file
=
os_file_create_tmpfile
();
ut_a
(
lock_latest_err_file
);
}
/*************************************************************************
...
...
innobase/os/os0file.c
View file @
ecb3518d
...
...
@@ -371,22 +371,72 @@ os_io_init_simple(void)
}
}
#ifndef UNIV_HOTBACKUP
/*************************************************************************
Creates a temporary file. This function is defined in ha_innodb.cc. */
int
innobase_mysql_tmpfile
(
void
);
/*========================*/
/* out: temporary file descriptor, or < 0 on error */
#endif
/* !UNIV_HOTBACKUP */
/***************************************************************************
Creates a temporary file.
In case of error, causes abnormal termination.
*/
Creates a temporary file. */
FILE
*
os_file_create_tmpfile
(
void
)
/*========================*/
/* out: temporary file handle (never NULL)
*/
/* out: temporary file handle, or NULL on error
*/
{
FILE
*
file
=
tmpfile
();
if
(
file
==
NULL
)
{
FILE
*
file
=
NULL
;
int
fd
=
-
1
;
#ifdef UNIV_HOTBACKUP
int
tries
;
for
(
tries
=
10
;
tries
--
;
)
{
char
*
name
=
tempnam
(
fil_path_to_mysql_datadir
,
"ib"
);
if
(
!
name
)
{
break
;
}
fd
=
open
(
name
,
# ifdef __WIN__
O_SEQUENTIAL
|
O_SHORT_LIVED
|
O_TEMPORARY
|
# endif
/* __WIN__ */
O_CREAT
|
O_EXCL
|
O_RDWR
,
S_IREAD
|
S_IWRITE
);
if
(
fd
>=
0
)
{
# ifndef __WIN__
unlink
(
name
);
# endif
/* !__WIN__ */
free
(
name
);
break
;
}
ut_print_timestamp
(
stderr
);
fputs
(
" InnoDB: Error: unable to create temporary file
\n
"
,
stderr
);
os_file_handle_error
(
NULL
,
"tmpfile"
);
ut_error
;
fprintf
(
stderr
,
" InnoDB: Warning: "
"unable to create temporary file %s, retrying
\n
"
,
name
);
free
(
name
);
}
#else
/* UNIV_HOTBACKUP */
fd
=
innobase_mysql_tmpfile
();
#endif
/* UNIV_HOTBACKUP */
if
(
fd
>=
0
)
{
file
=
fdopen
(
fd
,
"w+b"
);
}
if
(
!
file
)
{
ut_print_timestamp
(
stderr
);
fprintf
(
stderr
,
" InnoDB: Error: unable to create temporary file;"
" errno: %d
\n
"
,
errno
);
if
(
fd
>=
0
)
{
close
(
fd
);
}
}
return
(
file
);
}
...
...
innobase/srv/srv0srv.c
View file @
ecb3518d
...
...
@@ -223,6 +223,9 @@ merge to completion before shutdown */
ibool
srv_fast_shutdown
=
FALSE
;
/* Generate a innodb_status.<pid> file */
ibool
srv_innodb_status
=
FALSE
;
ibool
srv_use_doublewrite_buf
=
TRUE
;
ibool
srv_set_thread_priorities
=
TRUE
;
...
...
innobase/srv/srv0start.c
View file @
ecb3518d
...
...
@@ -1023,16 +1023,24 @@ NetWare. */
mutex_create
(
&
srv_monitor_file_mutex
);
mutex_set_level
(
&
srv_monitor_file_mutex
,
SYNC_NO_ORDER_CHECK
);
srv_monitor_file_name
=
mem_alloc
(
strlen
(
fil_path_to_mysql_datadir
)
+
20
+
sizeof
"/innodb_status."
);
sprintf
(
srv_monitor_file_name
,
"%s/innodb_status.%lu"
,
fil_path_to_mysql_datadir
,
os_proc_get_number
());
srv_monitor_file
=
fopen
(
srv_monitor_file_name
,
"w+"
);
if
(
!
srv_monitor_file
)
{
fprintf
(
stderr
,
"InnoDB: unable to create %s: %s
\n
"
,
srv_monitor_file_name
,
strerror
(
errno
));
return
(
DB_ERROR
);
if
(
srv_innodb_status
)
{
srv_monitor_file_name
=
mem_alloc
(
strlen
(
fil_path_to_mysql_datadir
)
+
20
+
sizeof
"/innodb_status."
);
sprintf
(
srv_monitor_file_name
,
"%s/innodb_status.%lu"
,
fil_path_to_mysql_datadir
,
os_proc_get_number
());
srv_monitor_file
=
fopen
(
srv_monitor_file_name
,
"w+"
);
if
(
!
srv_monitor_file
)
{
fprintf
(
stderr
,
"InnoDB: unable to create %s: %s
\n
"
,
srv_monitor_file_name
,
strerror
(
errno
));
return
(
DB_ERROR
);
}
}
else
{
srv_monitor_file_name
=
NULL
;
srv_monitor_file
=
os_file_create_tmpfile
();
if
(
!
srv_monitor_file
)
{
return
(
DB_ERROR
);
}
}
/* Restrict the maximum number of file i/o threads */
...
...
@@ -1527,8 +1535,10 @@ innobase_shutdown_for_mysql(void)
if
(
srv_monitor_file
)
{
fclose
(
srv_monitor_file
);
srv_monitor_file
=
0
;
unlink
(
srv_monitor_file_name
);
mem_free
(
srv_monitor_file_name
);
if
(
srv_monitor_file_name
)
{
unlink
(
srv_monitor_file_name
);
mem_free
(
srv_monitor_file_name
);
}
}
mutex_free
(
&
srv_monitor_file_mutex
);
...
...
sql/ha_innodb.cc
View file @
ecb3518d
...
...
@@ -103,6 +103,7 @@ uint innobase_flush_log_at_trx_commit = 1;
my_bool
innobase_log_archive
=
FALSE
;
my_bool
innobase_use_native_aio
=
FALSE
;
my_bool
innobase_fast_shutdown
=
TRUE
;
my_bool
innobase_create_status_file
=
FALSE
;
static
char
*
internal_innobase_data_file_path
=
NULL
;
...
...
@@ -405,6 +406,30 @@ innobase_mysql_print_thd(
putc
(
'\n'
,
f
);
}
/*************************************************************************
Creates a temporary file. */
extern
"C"
int
innobase_mysql_tmpfile
(
void
)
/*========================*/
/* out: temporary file descriptor, or < 0 on error */
{
char
filename
[
FN_REFLEN
];
File
fd
=
create_temp_file
(
filename
,
NullS
,
"ib"
,
#ifdef __WIN__
O_BINARY
|
O_TRUNC
|
O_SEQUENTIAL
|
O_TEMPORARY
|
O_SHORT_LIVED
|
#endif
/* __WIN__ */
O_CREAT
|
O_EXCL
|
O_RDWR
,
MYF
(
MY_WME
));
#ifndef __WIN__
if
(
fd
>=
0
)
{
unlink
(
filename
);
}
#endif
/* !__WIN__ */
return
(
fd
);
}
/*************************************************************************
Gets the InnoDB transaction handle for a MySQL handler object, creates
an InnoDB transaction struct if the corresponding MySQL thread struct still
...
...
@@ -861,6 +886,7 @@ innobase_init(void)
srv_force_recovery
=
(
ulint
)
innobase_force_recovery
;
srv_fast_shutdown
=
(
ibool
)
innobase_fast_shutdown
;
srv_innodb_status
=
(
ibool
)
innobase_create_status_file
;
srv_print_verbose_log
=
mysql_embedded
?
0
:
1
;
...
...
@@ -4270,7 +4296,7 @@ ha_innobase::update_table_comment(
trx_search_latch_release_if_reserved
(
prebuilt
->
trx
);
str
=
NULL
;
if
(
FILE
*
file
=
tmpfile
())
{
if
(
FILE
*
file
=
os_file_create_
tmpfile
())
{
long
flen
;
/* output the data to a temporary file */
...
...
@@ -4330,7 +4356,7 @@ ha_innobase::get_foreign_key_create_info(void)
update_thd
(
current_thd
);
if
(
FILE
*
file
=
tmpfile
())
{
if
(
FILE
*
file
=
os_file_create_
tmpfile
())
{
long
flen
;
prebuilt
->
trx
->
op_info
=
(
char
*
)
"getting info on foreign keys"
;
...
...
sql/ha_innodb.h
View file @
ecb3518d
...
...
@@ -203,7 +203,8 @@ extern char *innobase_log_group_home_dir, *innobase_log_arch_dir;
extern
char
*
innobase_unix_file_flush_method
;
/* The following variables have to be my_bool for SHOW VARIABLES to work */
extern
my_bool
innobase_log_archive
,
innobase_use_native_aio
,
innobase_fast_shutdown
;
innobase_use_native_aio
,
innobase_fast_shutdown
,
innobase_create_status_file
;
extern
"C"
{
extern
ulong
srv_max_buf_pool_modified_pct
;
}
...
...
sql/mysqld.cc
View file @
ecb3518d
...
...
@@ -3458,6 +3458,7 @@ enum options_mysqld {
OPT_INNODB_LOCK_WAIT_TIMEOUT
,
OPT_INNODB_THREAD_CONCURRENCY
,
OPT_INNODB_FORCE_RECOVERY
,
OPT_INNODB_STATUS_FILE
,
OPT_INNODB_MAX_DIRTY_PAGES_PCT
,
OPT_BDB_CACHE_SIZE
,
OPT_BDB_LOG_BUFFER_SIZE
,
...
...
@@ -3625,6 +3626,10 @@ struct my_option my_long_options[] =
{
"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
},
{
"innodb_status_file"
,
OPT_INNODB_STATUS_FILE
,
"Enable SHOW INNODB STATUS output in the innodb_status.<pid> file"
,
(
gptr
*
)
&
innobase_create_status_file
,
(
gptr
*
)
&
innobase_create_status_file
,
0
,
GET_BOOL
,
OPT_ARG
,
0
,
0
,
0
,
0
,
0
,
0
},
{
"innodb_max_dirty_pages_pct"
,
OPT_INNODB_MAX_DIRTY_PAGES_PCT
,
"Percentage of dirty pages allowed in bufferpool"
,
(
gptr
*
)
&
srv_max_buf_pool_modified_pct
,
(
gptr
*
)
&
srv_max_buf_pool_modified_pct
,
0
,
GET_ULONG
,
REQUIRED_ARG
,
90
,
0
,
100
,
0
,
0
,
0
},
...
...
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