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

change ladvise wire protocol for lockahead and future usage

    XMLWordPrintable

Details

    • Improvement
    • Resolution: Fixed
    • Minor
    • Lustre 2.9.0
    • None
    • None
    • 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

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

              Dates

                Created:
                Updated:
                Resolved: