• Type: Technical task
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: Lustre 2.8.0
    • Fix Version/s: Lustre 2.8.0
    • Labels:
    • Rank (Obsolete):


      During recovery, if one update replay is failed, all of related updates might be failed in the following replay process. For example, client1 creates a remote directory on MDT1, and its name entry is on MDT0, then other clients will create files under this remote directory on MDT1. If MDT0 fails and the name entry insertion has not been committed to disk yet. If the recovery is failed for some reason, i.e. the directory is not being connected to the name space at all, all of the files under this directory will not be able to be accessed. To avoid this, commit on share will be applied to cross-MDT operation. i.e. If the MDT finds the object being updated was modified by some previous cross-MDT operation, this cross-MDT operation needs to be committed first. So in the previous example, before creating any files under remote directory, the creation of the remote directory must be committed to disk first.
      Commit on Share (COS) will be implemented by COS lock, which is similar as current local COS implementation. During cross-MDT operation, all locks of remote objects(remote locks) will be hold on the master MDT, and all of remote locks will be COS lock. If these COS locks are being revoked, the master MDT will not only do sync on itself, but also do sync on remote MDTs.


          Issue Links



              • Assignee:
                laisiyao Lai Siyao
       Di Wang
              • Votes:
                0 Vote for this issue
                10 Start watching this issue


                • Created: