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

            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.

            Will this patch be inspected? It's almost three months from the patch upload. I had to rebase to a recent version.

            panda Andrew Perepechko added a comment - Will this patch be inspected? It's almost three months from the patch upload. I had to rebase to a recent version.

            Sorry JC, the Xyratex tickets are really only useful for Xyratex engineers. We have posted the patch in the first comment above.

            nrutman Nathan Rutman added a comment - Sorry JC, the Xyratex tickets are really only useful for Xyratex engineers. We have posted the patch in the first comment above.

            Nathan the xyratex url is broken (server not found error), can you put a valid/public one ?

            jcl jacques-charles lafoucriere added a comment - Nathan the xyratex url is broken (server not found error), can you put a valid/public one ?

            Xyratex MRP-57

            nrutman Nathan Rutman added a comment - Xyratex MRP-57

            xattr cache performance for the simplest Lustre configuration (2 nodes), read case is faster for the cached version as compared with the uncached by 4.5 times

            panda Andrew Perepechko added a comment - xattr cache performance for the simplest Lustre configuration (2 nodes), read case is faster for the cached version as compared with the uncached by 4.5 times

            People

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

              Dates

                Created:
                Updated:
                Resolved: