Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-4931

New feature of giving server/storage side advice of accessing file

Details

    • New Feature
    • Resolution: Fixed
    • Major
    • Lustre 2.9.0
    • None
    • 13631

    Description

      We implement a new feature which provides new APIs and utils for senior users and smart applications to give advices about the access pattern of Lustre file so as to improve the data/metadata access peformance. It has a similar idea with fadvise64_64(2) or posix_fadvise(2), yet can pass specical advices directly through Lustre client to server/storage side.

      Some tests show that this feature might help us to get performance improvement for some application by giving proper advices in advance.

      Attachments

        Issue Links

          Activity

            [LU-4931] New feature of giving server/storage side advice of accessing file

            Oleg Drokin (oleg.drokin@intel.com) merged in patch http://review.whamcloud.com/21940/
            Subject: LU-4931 ladvise: add code for ladvise_hdr into wirecheck.c
            Project: fs/lustre-release
            Branch: master
            Current Patch Set:
            Commit: 5ee1287305fb6b6c472d097ef9a86a9e315104e4

            gerrit Gerrit Updater added a comment - Oleg Drokin (oleg.drokin@intel.com) merged in patch http://review.whamcloud.com/21940/ Subject: LU-4931 ladvise: add code for ladvise_hdr into wirecheck.c Project: fs/lustre-release Branch: master Current Patch Set: Commit: 5ee1287305fb6b6c472d097ef9a86a9e315104e4

            Oleg Drokin (oleg.drokin@intel.com) merged in patch http://review.whamcloud.com/22489/
            Subject: LU-4931 ofd: use thread buffer for ladvise
            Project: fs/lustre-release
            Branch: master
            Current Patch Set:
            Commit: c29cf72acd431e65f0438804561e7c30feef0366

            gerrit Gerrit Updater added a comment - Oleg Drokin (oleg.drokin@intel.com) merged in patch http://review.whamcloud.com/22489/ Subject: LU-4931 ofd: use thread buffer for ladvise Project: fs/lustre-release Branch: master Current Patch Set: Commit: c29cf72acd431e65f0438804561e7c30feef0366
            pjones Peter Jones added a comment -

            Man page has landed. Remaining patches tracked under this id will be landed under a new ticket

            pjones Peter Jones added a comment - Man page has landed. Remaining patches tracked under this id will be landed under a new ticket

            Oleg Drokin (oleg.drokin@intel.com) merged in patch http://review.whamcloud.com/22910/
            Subject: LU-4931 doc: update ladvise man page
            Project: fs/lustre-release
            Branch: master
            Current Patch Set:
            Commit: f63e53a364f5162c0f8a81e42978c5a2b9b7522d

            gerrit Gerrit Updater added a comment - Oleg Drokin (oleg.drokin@intel.com) merged in patch http://review.whamcloud.com/22910/ Subject: LU-4931 doc: update ladvise man page Project: fs/lustre-release Branch: master Current Patch Set: Commit: f63e53a364f5162c0f8a81e42978c5a2b9b7522d

            Reopen to land man page for 2.9.0:

            Andreas Dilger (andreas.dilger@intel.com) uploaded a new patch: http://review.whamcloud.com/22910
            Subject: LU-4931 doc: update ladvise man page
            Project: fs/lustre-release
            Branch: master
            Current Patch Set: 2
            Commit: 61ceb43c858d6fc979fc4da9d2a925026b27859a

            adilger Andreas Dilger added a comment - Reopen to land man page for 2.9.0: Andreas Dilger (andreas.dilger@intel.com) uploaded a new patch: http://review.whamcloud.com/22910 Subject: LU-4931 doc: update ladvise man page Project: fs/lustre-release Branch: master Current Patch Set: 2 Commit: 61ceb43c858d6fc979fc4da9d2a925026b27859a
            pjones Peter Jones added a comment -

            As per discussion with Ihara all further enhancements in this area will be tracked under a different JIRA ticket

            pjones Peter Jones added a comment - As per discussion with Ihara all further enhancements in this area will be tracked under a different JIRA ticket

            Oleg Drokin (oleg.drokin@intel.com) merged in patch http://review.whamcloud.com/20203/
            Subject: LU-4931 ladvise: Add dontneed advice support for ladvise
            Project: fs/lustre-release
            Branch: master
            Current Patch Set:
            Commit: a5a7890093ea2509db15f8aa8a8c9d9c86133209

            gerrit Gerrit Updater added a comment - Oleg Drokin (oleg.drokin@intel.com) merged in patch http://review.whamcloud.com/20203/ Subject: LU-4931 ladvise: Add dontneed advice support for ladvise Project: fs/lustre-release Branch: master Current Patch Set: Commit: a5a7890093ea2509db15f8aa8a8c9d9c86133209

            Li Xi (lixi@ddn.com) uploaded a new patch: http://review.whamcloud.com/22489
            Subject: LU-4931 ofd: use thread buffer for ladvise
            Project: fs/lustre-release
            Branch: master
            Current Patch Set: 1
            Commit: 64b359ee1aa58b95c13323039b300a04556ff033

            gerrit Gerrit Updater added a comment - Li Xi (lixi@ddn.com) uploaded a new patch: http://review.whamcloud.com/22489 Subject: LU-4931 ofd: use thread buffer for ladvise Project: fs/lustre-release Branch: master Current Patch Set: 1 Commit: 64b359ee1aa58b95c13323039b300a04556ff033

            Also, while you are in there, can you please fix the indenting for

            static int ofd_ladvise_hdl(struct tgt_session_info *tsi)
            {
                    :
                    :
                            case LU_LADVISE_WILLREAD:
                                    req->rq_status = ofd_ladvise_prefetch(env, 
                                            fo,
                                            ladvise->lla_start,
                                            ladvise->lla_end);
            

            to be

                                    req->rq_status = ofd_ladvise_prefetch(env, fo,
                                                                    ladvise->lla_start,
                                                                    ladvise->lla_end);
            
            adilger Andreas Dilger added a comment - Also, while you are in there, can you please fix the indenting for static int ofd_ladvise_hdl(struct tgt_session_info *tsi) { : : case LU_LADVISE_WILLREAD: req->rq_status = ofd_ladvise_prefetch(env, fo, ladvise->lla_start, ladvise->lla_end); to be req->rq_status = ofd_ladvise_prefetch(env, fo, ladvise->lla_start, ladvise->lla_end);

            Li Xi, I noticed just now in ofd_ladvise_prefetch() that this is allocating PTLRPC_MAX_BRW_PAGES * sizeof(niobuf_local) = 160KB for each ladvise willread call. Instead, this should be using struct tgt_thread_big_cache *tbc = req->rq_svc_thread->t_data as is done in tgt_brw_read().

            adilger Andreas Dilger added a comment - Li Xi, I noticed just now in ofd_ladvise_prefetch() that this is allocating PTLRPC_MAX_BRW_PAGES * sizeof(niobuf_local) = 160KB for each ladvise willread call. Instead, this should be using struct tgt_thread_big_cache *tbc = req->rq_svc_thread->t_data as is done in tgt_brw_read() .

            People

              lixi Li Xi (Inactive)
              lixi Li Xi (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              19 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: