我知道即使正在写入的文件已打开O_DIRECT
并且文件的元数据已更改,XFS 也不会同步元数据。但是对于 ext4,我注意到 MySQL 支持O_DIRECT_NO_FSYNC
,这意味着 MySQL 不会调用fsync()
并让文件系统自行同步元数据。
所以问题来了:如果我在 ext4 中open
有一个文件O_DIRECT
(比如 linux 内核版本 5.8.0),然后调用fsync()
after write()
,会fsync()
做什么?
要遵循的另一个问题:fsync()
如果open()
文件包含O_DIRECT | O_SYNC
在 ext4 中会怎样?
谢谢!