2013年9月10日火曜日

知られざるinnodb_flush_methodの値

innodb_flush_methodの値といえば、fdatasync(暗黙のデフォルト)かO_DIRECTくらいしか知らなかった訳だが、O_DSYNCやO_DIRECT_NO_FSYNC(5.6.7から)もあったり、Percona ServerにはALL_O_DIRECTなんてものがあったりする。
http://dev.mysql.com/doc/refman/5.5/en/innodb-parameters.html#sysvar_innodb_flush_method
http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#sysvar_innodb_flush_method
http://www.percona.com/doc/percona-server/5.1/scalability/innodb_io.html?id=percona-server:features:innodb_io_51&redirect=2#innodb_flush_method


が、実はlittlesyncとnosyncという値も設定できるっぽい。mysql-5.6.13/storage/innobase/srv/srv0start.cc には、

1665         } else if (0 == ut_strcmp(srv_file_flush_method_str, "fsync")) {
1666                 srv_unix_file_flush_method = SRV_UNIX_FSYNC;
1667
1668         } else if (0 == ut_strcmp(srv_file_flush_method_str, "O_DSYNC")) {
1669                 srv_unix_file_flush_method = SRV_UNIX_O_DSYNC;
1670
1671         } else if (0 == ut_strcmp(srv_file_flush_method_str, "O_DIRECT")) {
1672                 srv_unix_file_flush_method = SRV_UNIX_O_DIRECT;
1673
1674         } else if (0 == ut_strcmp(srv_file_flush_method_str, "O_DIRECT_NO_FSYNC")) {
1675                 srv_unix_file_flush_method = SRV_UNIX_O_DIRECT_NO_FSYNC;
1676
1677         } else if (0 == ut_strcmp(srv_file_flush_method_str, "littlesync")) {
1678                 srv_unix_file_flush_method = SRV_UNIX_LITTLESYNC;
1679
1680         } else if (0 == ut_strcmp(srv_file_flush_method_str, "nosync")) {
1681                 srv_unix_file_flush_method = SRV_UNIX_NOSYNC;
 しかもちゃんと

mysql> SHOW GLOBAL VARIABLES LIKE 'innodb_flush_method';
+---------------------+--------+
| Variable_name       | Value  |
+---------------------+--------+
| innodb_flush_method | nosync |
+---------------------+--------+
1 row in set (0.00 sec)

認識されてるし。。


こんな機能メンテしたくないからドキュメントからは外した、とInnoDB開発者の弁。
 ⇒http://lists.mysql.com/mysql/148920

かなり速そうだから、バックアップからの戻しならアリかもね。。


【2015/07/24 16:43】
今ドキュメント見たら載ってるなぁ。。

でもこっちはクローズされてないなぁ。。
MySQL Bugs: #26588: innodb_flush_method, nosync and littlesync undocumented

0 件のコメント :

コメントを投稿