Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NSFS | versioning | add comment and documentation about multipart upload version-id #8785

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

nadavMiz
Copy link
Contributor

Explain the changes

  1. following discussion about NSFS | Versioning - in multipart upload version id order should be calculated based on creation time rather than completion time  #8411 it was decided to leave the current design regarding ordering of the version-id for multipart upload. since our design is different then that of AWS, added documentation for this case.

Issues: Fixed #xxx / Gap #xxx

  1. relates to NSFS | Versioning - in multipart upload version id order should be calculated based on creation time rather than completion time  #8411

Testing Instructions:

  • Doc added/updated
  • Tests added

@nadavMiz nadavMiz force-pushed the multipart-upload-document branch from fa56b2d to 20c3d8e Compare February 13, 2025 12:10
@@ -49,6 +49,9 @@ In the figure, each original directory contains a hidden .versions/ sub- directo
* The version ID will be attached as an xattr of the file.
* When a latest version is moved to past versions directory, the file name will be changed from key to key_{version_id}.

#### Multipart upload version order
according to AWS specifications multipart upload version time should be calcluated based on multipart upload creation time rather then completion time. For directory buckets, the object creation time is the completion date of the multipart upload. In our design the version-id time is calculated based on completion time. see https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#distributedmpupload https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-using-multipart-upload.html#s3-express-distributedmpupload
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

minor typos
I would move this part before the "out of scope" as it is quite an internal and deep subject (and you attached between basic concepts - version ID and Delete Marker).

I'm adding a suggestion for adding links and separation - accept only the parts that you like.

Suggested change
according to AWS specifications multipart upload version time should be calcluated based on multipart upload creation time rather then completion time. For directory buckets, the object creation time is the completion date of the multipart upload. In our design the version-id time is calculated based on completion time. see https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#distributedmpupload https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-using-multipart-upload.html#s3-express-distributedmpupload
According to AWS specifications, multipart upload version time should be calculated based on multipart upload creation time rather than completion time (see [AWS Documentation](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#distributedmpupload)).
On the other hand, for directory buckets, the object creation time is the completion date of the multipart upload (see [AWS Documentation](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-using-multipart-upload.html#s3-express-distributedmpupload).
In our design, the version-id time is calculated based on completion time.

// 2.1.2. else - copy the prev part size file prefix to upload_path
// 3. copy bytes of the current's part size file
// NOTE on versioning - according to general aws specifications, the version_id time should be based on when we created the upload.
// for directory buckets, on AWS, the object creation time is the completion date of the multipart upload
// on our design we desided to do it based on when the upload was completed.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would note the reason in short (1 to a couple of words - "performance"...).

Suggested change
// on our design we desided to do it based on when the upload was completed.
// on our design we decided to do it based on when the upload was completed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants