s3gw icon indicating copy to clipboard operation
s3gw copied to clipboard

rgw/sfs: make multipart `complete` async, in the background

Open jecluis opened this issue 1 year ago • 0 comments

Currently, we are building the final object synchronously, during the complete request. This works fine because we rely on copy_file_range() to perform the data copy -- thus avoiding reading and writing the data twice, at least on filesystems that support reflinks.

However, we have several places in this function where we can transiently fail, with no prejudice to the validity of the operation itself, and we should be able to retry it at a later stage -- the client will likely not retry the operation, as it expects this operation to be async.

We should ensure that our operation happens in the background, as expected, so that the client does not hang while we build the final objects.

jecluis avatar Nov 23 '23 05:11 jecluis