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

          Activity

            People

              qian_wc Qian Yingjin
              qian_wc Qian Yingjin
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated: