Details

    • Technical task
    • Resolution: Fixed
    • Major
    • None
    • None
    • None
    • 9223372036854775807

    Description

      Current layout add replay is flawed, because layout add replies whole file LOVEA to client, and when replay, client sends the whole LOVEA back to server, server can't know which components were newly created by this layout add, and the replay would have to calls lod_sub_object_declare_create()/lod_sub_object_create() against all components, even for the pre-existing components.

      A proposal fix is to add one more 'buffer' parameter to dt_xattr_set(), and it's passed down to lod_xattr_set() -> lod_striping_create(), in lod_striping_create(), the 'buffer' will be filled with the LOVEA for the newly created components, at the end, the 'buffer' will be copied to reply buffer and returned to client, so that on replay, client will send back the partial LOVEA which being newly created, and server knows which components needs be re-processed.

      In a word, layout add creates only partial layout, so server should return the partial layout to client but not the whole LOVEA.

      Attachments

        Activity

          People

            bobijam Zhenyu Xu
            niu Niu Yawei (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: