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

Choose final object version encoding #6538

Closed
mniewrzal opened this issue Nov 21, 2023 · 4 comments
Closed

Choose final object version encoding #6538

mniewrzal opened this issue Nov 21, 2023 · 4 comments
Assignees

Comments

@mniewrzal
Copy link
Contributor

mniewrzal commented Nov 21, 2023

Currently we are encoding int64 version into 16 bytes to be valid UUID. We need to decide if we want more data stored into our version or if we want to encode it in a different way.

@mniewrzal mniewrzal added this to the Object Versioning Support milestone Nov 21, 2023
@mniewrzal mniewrzal changed the title Decide about object version encoding Choose final object version encoding Nov 21, 2023
@shaupt131 shaupt131 added the Enhancement New feature or request label Nov 28, 2023
@shaupt131
Copy link

We can do this in parallel to QA sprint 29.

@shaupt131 shaupt131 removed the Enhancement New feature or request label Dec 12, 2023
@mniewrzal mniewrzal self-assigned this Dec 13, 2023
@mniewrzal
Copy link
Contributor Author

Michał Niewrzał
So in regards to version encoding. Currently we are just encoding int64 into 16 byte. Its 16 bytes because in some cases minio code is validating VersionID as UUID. Before moving versioning to beta and give it to customers we should decide if we want to keep this simple encoding or make it more sophisticated. Egon proposed to put stream_id into encoded version. With limitation to 16 bytes we can include half of stream_id. Of course we could modify minio (we forked it) to accept longer VersionID but is it really important?
Egon
Yes, we'll need stream id to be part of the api version to provide better uniqueness. e.g. otherwise it's easy to get the same version number on the same object
Michał Niewrzał
so only question is if we need full stream_id or partial stream_id will be good enough
Egon
partial should be good enough
Although, use the last 8 bytes of the stream id rather than the first. Delete marker first 6 bytes are 0xFF

@storj-gerrit
Copy link

storj-gerrit bot commented Dec 14, 2023

Change satellite/metabase: include part of stream id into encoded version mentions this issue.

storjBuildBot pushed a commit that referenced this issue Dec 18, 2023
We want to put StreamID into encoded version to validate object
uniqueness. This change only starts including StreamID into version.
Validation will be a separate change.

#6538

Change-Id: I541738a7a51576ba957dc485f61385e37948703b
@iglesiasbrandon
Copy link
Contributor

@mniewrzal @egonelbre it looks like the PR for this issue has been deployed to production. I am going to close this issue. @shaupt131

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

No branches or pull requests

4 participants