Details

    • Improvement
    • Resolution: Fixed
    • Minor
    • Lustre 2.5.0
    • None
    • 6935

    Description

      The patch implements an extended attribute cache for
      a Lustre client. It is organized as a write-through
      cache: reads are performed from cache, updates are sent
      synchronously to the MDS. An additional inode bit
      is added to protect the cache.

      The patch itself will be uploaded shortly.

      Attachments

        Issue Links

          Activity

            [LU-2869] extended attribute cache for Lustre

            great. thanks!

            bzzz Alex Zhuravlev added a comment - great. thanks!

            not sure what kind of inconsistency FLXATTRLS can observe?

            Like, setxattr "a=x", setxattr "b=y". An unlocked FLXATTRLS can pack "b=y" update without packing "a=x" because of update races.

            any plans to make a patch to drop it?

            I'll update http://review.whamcloud.com/#/c/7208/ with this fix in a while.

            panda Andrew Perepechko added a comment - not sure what kind of inconsistency FLXATTRLS can observe? Like, setxattr "a=x", setxattr "b=y". An unlocked FLXATTRLS can pack "b=y" update without packing "a=x" because of update races. any plans to make a patch to drop it? I'll update http://review.whamcloud.com/#/c/7208/ with this fix in a while.

            not sure what kind of inconsistency FLXATTRLS can observe? any plans to make a patch to drop it?

            bzzz Alex Zhuravlev added a comment - not sure what kind of inconsistency FLXATTRLS can observe? any plans to make a patch to drop it?
            panda Andrew Perepechko added a comment - - edited

            Besides -ENOENT, due to races an FLXATTRLS user can get an inconsistent list of attribute names and values, which the object never had from another client viewpoint. But since there is no use case for that, the locking can be simply dropped.

            panda Andrew Perepechko added a comment - - edited Besides -ENOENT, due to races an FLXATTRLS user can get an inconsistent list of attribute names and values, which the object never had from another client viewpoint. But since there is no use case for that, the locking can be simply dropped.

            well, if this failure is -ENOENT, then it should be easy to check and skip? on the otherhand we carry this structure for every object in MDT cache. a bit expensive for such a case?

            bzzz Alex Zhuravlev added a comment - well, if this failure is -ENOENT, then it should be easy to check and skip? on the otherhand we carry this structure for every object in MDT cache. a bit expensive for such a case?

            The semaphore was added to protect the case when the client does not take the XATTR lock and requests FLXATTRALL.
            FLXATTRALL is implemented as getting the list and then getting the values, so setting/removing an xattr in the middle
            can lead to failure. Currently, there is no FLXATTRLS user that does not take the XATTR lock, so there is no use
            case for the semaphore being contended.

            panda Andrew Perepechko added a comment - The semaphore was added to protect the case when the client does not take the XATTR lock and requests FLXATTRALL. FLXATTRALL is implemented as getting the list and then getting the values, so setting/removing an xattr in the middle can lead to failure. Currently, there is no FLXATTRLS user that does not take the XATTR lock, so there is no use case for the semaphore being contended.

            can you explain why mot_xattr_sem is needed, please?

            bzzz Alex Zhuravlev added a comment - can you explain why mot_xattr_sem is needed, please?

            Landed for 2.5

            jamesanunez James Nunez (Inactive) added a comment - Landed for 2.5

            Thanks, James!

            panda Andrew Perepechko added a comment - Thanks, James!

            The master branch should open for new features soon.

            jamesanunez James Nunez (Inactive) added a comment - The master branch should open for new features soon.

            People

              jamesanunez James Nunez (Inactive)
              panda Andrew Perepechko
              Votes:
              0 Vote for this issue
              Watchers:
              9 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: