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

create objects on truncate

    XMLWordPrintable

Details

    • Improvement
    • Resolution: Fixed
    • Major
    • Lustre 2.10.0
    • Lustre 2.4.0
    • None
    • 3
    • 2410

    Description

      OSP tries to address one issue found in LOV/OSC: objid is assigned outside of transaction and this can lead to gaps in objid sequence and leaked OST objects.

      OSP does this assignment with transaction open. but there is one exception: truncate on a file with no objects created. if later we create OST objects (upon open for write), then MDS sends OST_PUNCH to propagate non-zero size to OST. but we can't do this holding open transaction. so we again have to assign
      objid and send OST_PUNCH outside of transaction. this lead to leaked objects
      (in case of server failure) and complications in the code.

      so we have decided to avoid this situation: truncate will be creating OST objects, return newly created LOVEA back to the client and the client will
      be doing regular truncate to OSTs propagating requested size.

      essentially truncate becomes a form of open. this is especially true with
      SOM, because truncate has to open an epoch. we may use this fact to re-use
      some code on MDS to implement OST object creation on truncate.

      Attachments

        Issue Links

          Activity

            People

              jhammond John Hammond
              bzzz Alex Zhuravlev
              Votes:
              0 Vote for this issue
              Watchers:
              9 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: