Details

    • Type: Technical task
    • Status: Open
    • Priority: Blocker
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Labels:
      None
    • Rank (Obsolete):
      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

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

                Dates

                • Created:
                  Updated: