Metadata writeback cache support
(LU-10938)
|
|
| Status: | Open |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Technical task | Priority: | Blocker |
| Reporter: | Qian Yingjin | Assignee: | Qian Yingjin |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Issue Links: |
|
||||||||||||||||
| Rank (Obsolete): | 9223372036854775807 | ||||||||||||||||
| Description |
lfs wbc commands# lfs wbc cache $DIR If $DIR is an empty directory, try to acquire WBC EX lock from MDT for $DIR;
# lfs wbc list $MOUNT List all root WBC directories on a client.
# lfs wbc uncache $DIR Sync and remove a cached root WBC directory $DIR.
#lfs wbc state $file Display the WBC state of the file $file. lctl wbc commandsLU-13012 WBC: Rule based auto WBC;
# lctl wbc /mnt/lustre [--data-on-pcc] [--metadata-on-pcc] [--device /mnt/pcc] [--memfs]... |
| Comments |
| Comment by Andreas Dilger [ 26/Nov/19 ] |
|
I think it makes sense for the client to always try to get the WBC EX directory lock on a new directory. In the worst case this causes an extra LDLM blocking callback if the directory is immediately contended, but I think the far more common case is that the client creating the directory will also create at least a few files in it (eg. num_threads per client) before it is accessed by other clients. This makes WBC immediately useful for users, and also improves test coverage significantly. The "lfs wbc cache $DIR" command should force the client to try and get the WBC EX lock on existing directory "$DIR" and fetch the list of filenames via readdir so that it can make local decisions whether the filename exists already or not. Eventually, even the fetching and caching of directory entries should be done automatically based on how many files the one client is creating in the same directory, and if other clients are contending for the directory lock. For WBCv1 we shouldn't try to handle existing directories, only new directories. |