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

change ladvise wire protocol for lockahead and future usage

    XMLWordPrintable

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: Lustre 2.9.0
    • Labels:
      None
    • Rank (Obsolete):
      9223372036854775807

      Description

      As a continuation of LU-4931 "New feature of giving server/storage side advice of accessing file" and LU-4865 "osd-zfs: increase object block size dynamically as object grows" it is useful to be able to specify the ZFS blocksize for a file directly from the client, so that the OSS doesn't have to guess at this itself.

      This can be done via the "ladvise" functionality. One option is to pass the blocksize (a power-of-two value) along with the RANDOM hint on a newly-created file. This could use 8 bits of lla_padding to store the log2 blocksize, giving a maximum blocksize up to 2^255 bytes.

      struct lu_ladvise {
      	__u64 lla_advice;
      	__u64 lla_start;
      	__u64 lla_end;
              __u8  lla_blockbits;
      	__u8  lla_padding1;
      	__u16 lla_padding2;
      	__u32 lla_padding3;
      };
      

      It isn't clear if there are valid use cases for non-power-of-two RANDOM IO hints at the server, which would require using a different encoding (e.g. some multiple of a blocksize), since that could also be handled at the client by sending the underlying power-of-two blocksize.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              wc-triage WC Triage
              Reporter:
              adilger Andreas Dilger
              Votes:
              0 Vote for this issue
              Watchers:
              9 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: