Details
-
Technical task
-
Resolution: Unresolved
-
Blocker
-
None
-
None
-
None
-
9223372036854775807
Description
When MemFS decides to flush changes to the persistent storage as a result of an fsync() call or a normal VFS/VM dirty inode writeback, this can be implemented via super block VFS interface ->write_inode()) in the background when it gets old.
An fsync on a file or directory must ensure that all changes to that file or directory, at the time fsync was called, are flushed to the persistent storage. As the subtree is cached on client-side MemFS, may not be flushed and inconsistent with the subtree on the server. To ensure the file and directory entry is durably stored in the persistent storage on MDS, it must ensure all its ancestral directory must be flushed as well when fsync was called.
To achieve this goal, it needs to reverse backtracking to its first ancestral directory that is synchronized to the server (in Sync(S) state). And then synchronize from this ancestral directory to the node called fsync() in top-down order.
Attachments
Issue Links
- is related to
-
LU-10938 Metadata writeback cache support
- Open