Merge lp:~gl-az/percona-server/port_ALL_O_DIRECT_to_5.6 into lp:percona-server/5.6
Proposed by
George Ormond Lorch III
Status: | Merged |
---|---|
Approved by: | Laurynas Biveinis |
Approved revision: | no longer in the source branch. |
Merged at revision: | 433 |
Proposed branch: | lp:~gl-az/percona-server/port_ALL_O_DIRECT_to_5.6 |
Merge into: | lp:percona-server/5.6 |
Diff against target: |
176 lines (+49/-12) 7 files modified
Percona-Server/mysql-test/suite/innodb/r/percona_changed_page_bmp_flush.result (+6/-0) Percona-Server/mysql-test/suite/innodb/t/percona_changed_page_bmp_flush.test (+16/-1) Percona-Server/storage/innobase/fil/fil0fil.cc (+6/-4) Percona-Server/storage/innobase/include/srv0srv.h (+5/-1) Percona-Server/storage/innobase/log/log0log.cc (+9/-4) Percona-Server/storage/innobase/os/os0file.cc (+4/-2) Percona-Server/storage/innobase/srv/srv0start.cc (+3/-0) |
To merge this branch: | bzr merge lp:~gl-az/percona-server/port_ALL_O_DIRECT_to_5.6 |
Related bugs: | |
Related blueprints: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Laurynas Biveinis (community) | Approve | ||
Review via email:
|
Description of the change
Reviewed 5.5 ALL_O_DIRECT and fixes for 1131949. Ported a few lines of code and additional test from 5.5 track changed pages.
http://
To post a comment you must log in.
- 5.6 refactored fil_flush() and there is a new #define in disabled( ) to check whether fsync() is disabled( ) to become aware of ALL_O_DIRECT check for flush_file_ spaces( ) call in log_checkpoint(). Without the disabled( ) change, flush_file_ spaces( ) would still acquire the file system file_spaces( ) call in checkpoint( ), we avoid that too. create_ func() should be merged ALL_O_DIRECT comment in srv0srv.h could be UNIX_O_ DIRECT comment.
fil0fil.cc fil_buffering_
disabled for a given tablespace. Since ALL_O_DIRECT disables
fsync() for log tablespaces (see bug 1229583), it is probably a
good idea to extend fil_buffering_
it too. This will have an effect of skipping some code paths
such as unflushed_spaces list maintenance.
- Consider adding ... || != SRV_UNIX_
fil_
previous fil_buffering_
fil_
mutex, loop through file spaces, find the log ones, attempt to
flush them with file system mutex acquired again, discovering it
should be a no-op and returning. With the above change this is
reduced to the initial mutex acquisition and loop through the
spaces. And if we just skip fil_flush_
log_
- The new if statement in os_file_
with the previous one to become else if.
- Please remove the comment preceding that first if: "We disable
OS caching (O_DIRECT) only on data files */
- The SRV_UNIX_
replaced with something more descriptive along the lines of
SRV_
- The "O_DSYNC means ... " comment in log_write_to() should
become "O_DSYNC or ALL_O_DIRECT means ... "