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
5dd8eeef
Commit
5dd8eeef
authored
Jul 26, 2005
by
marko@hundin.mysql.fi
Browse files
Options
Browse Files
Download
Plain Diff
Merge hundin.mysql.fi:/home/marko/mysql-4.1
into hundin.mysql.fi:/home/marko/mysql-5.0
parents
a009ec4a
a89939c8
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
18 additions
and
1 deletion
+18
-1
innobase/include/os0file.h
innobase/include/os0file.h
+2
-0
innobase/os/os0file.c
innobase/os/os0file.c
+14
-0
innobase/trx/trx0sys.c
innobase/trx/trx0sys.c
+2
-1
No files found.
innobase/include/os0file.h
View file @
5dd8eeef
...
...
@@ -19,7 +19,9 @@ Created 10/21/1995 Heikki Tuuri
typedef
struct
fil_node_struct
fil_node_t
;
#ifdef UNIV_DO_FLUSH
extern
ibool
os_do_not_call_flush_at_each_write
;
#endif
/* UNIV_DO_FLUSH */
extern
ibool
os_has_said_disk_full
;
extern
ibool
os_aio_print_debug
;
...
...
innobase/os/os0file.c
View file @
5dd8eeef
...
...
@@ -40,9 +40,13 @@ ulint os_innodb_umask = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP;
ulint
os_innodb_umask
=
0
;
#endif
#ifdef UNIV_DO_FLUSH
/* If the following is set to TRUE, we do not call os_file_flush in every
os_file_write. We can set this TRUE when the doublewrite buffer is used. */
ibool
os_do_not_call_flush_at_each_write
=
FALSE
;
#else
/* We do not call os_file_flush in every os_file_write. */
#endif
/* UNIV_DO_FLUSH */
/* We use these mutexes to protect lseek + file i/o operation, if the
OS does not provide an atomic pread or pwrite, or similar */
...
...
@@ -1985,6 +1989,7 @@ os_file_pwrite(
os_file_n_pending_pwrites
--
;
os_mutex_exit
(
os_file_count_mutex
);
# ifdef UNIV_DO_FLUSH
if
(
srv_unix_file_flush_method
!=
SRV_UNIX_LITTLESYNC
&&
srv_unix_file_flush_method
!=
SRV_UNIX_NOSYNC
&&
!
os_do_not_call_flush_at_each_write
)
{
...
...
@@ -1995,6 +2000,7 @@ os_file_pwrite(
ut_a
(
TRUE
==
os_file_flush
(
file
));
}
# endif
/* UNIV_DO_FLUSH */
return
(
ret
);
#else
...
...
@@ -2017,6 +2023,7 @@ os_file_pwrite(
ret
=
write
(
file
,
buf
,
(
ssize_t
)
n
);
# ifdef UNIV_DO_FLUSH
if
(
srv_unix_file_flush_method
!=
SRV_UNIX_LITTLESYNC
&&
srv_unix_file_flush_method
!=
SRV_UNIX_NOSYNC
&&
!
os_do_not_call_flush_at_each_write
)
{
...
...
@@ -2027,6 +2034,7 @@ os_file_pwrite(
ut_a
(
TRUE
==
os_file_flush
(
file
));
}
# endif
/* UNIV_DO_FLUSH */
os_mutex_exit
(
os_file_seek_mutexes
[
i
]);
...
...
@@ -2313,9 +2321,11 @@ retry:
/* Always do fsync to reduce the probability that when the OS crashes,
a database page is only partially physically written to disk. */
# ifdef UNIV_DO_FLUSH
if
(
!
os_do_not_call_flush_at_each_write
)
{
ut_a
(
TRUE
==
os_file_flush
(
file
));
}
# endif
/* UNIV_DO_FLUSH */
os_mutex_exit
(
os_file_seek_mutexes
[
i
]);
...
...
@@ -3533,10 +3543,12 @@ os_aio_windows_handle(
if
(
ret
&&
len
==
slot
->
len
)
{
ret_val
=
TRUE
;
# ifdef UNIV_DO_FLUSH
if
(
slot
->
type
==
OS_FILE_WRITE
&&
!
os_do_not_call_flush_at_each_write
)
{
ut_a
(
TRUE
==
os_file_flush
(
slot
->
file
));
}
# endif
/* UNIV_DO_FLUSH */
}
else
{
os_file_handle_error
(
slot
->
name
,
"Windows aio"
);
...
...
@@ -3617,10 +3629,12 @@ os_aio_posix_handle(
*
message1
=
slot
->
message1
;
*
message2
=
slot
->
message2
;
# ifdef UNIV_DO_FLUSH
if
(
slot
->
type
==
OS_FILE_WRITE
&&
!
os_do_not_call_flush_at_each_write
)
{
ut_a
(
TRUE
==
os_file_flush
(
slot
->
file
));
}
# endif
/* UNIV_DO_FLUSH */
os_mutex_exit
(
array
->
mutex
);
...
...
innobase/trx/trx0sys.c
View file @
5dd8eeef
...
...
@@ -97,8 +97,9 @@ trx_doublewrite_init(
/* Since we now start to use the doublewrite buffer, no need to call
fsync() after every write to a data file */
#ifdef UNIV_DO_FLUSH
os_do_not_call_flush_at_each_write
=
TRUE
;
#endif
/* UNIV_DO_FLUSH */
mutex_create
(
&
(
trx_doublewrite
->
mutex
));
mutex_set_level
(
&
(
trx_doublewrite
->
mutex
),
SYNC_DOUBLEWRITE
);
...
...
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