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

fix(deps): update github.com/thanos-io/objstore digest to 37752ee (main) #6622

Merged
merged 5 commits into from
Nov 16, 2023

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Nov 13, 2023

Mend Renovate logo banner

This PR contains the following updates:

Package Type Update Change
github.com/thanos-io/objstore require digest ff7faac -> 37752ee

Configuration

📅 Schedule: Branch creation - "before 9am on Monday" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate. View repository job log here.

@renovate renovate bot requested review from grafanabot and a team as code owners November 13, 2023 02:21
@@ -510,6 +514,7 @@ func (b *Bucket) Upload(ctx context.Context, name string, r io.Reader) error {
ServerSideEncryption: sse,
UserMetadata: userMetadata,
StorageClass: b.storageClass,
SendContentMd5: b.sendContentMd5,
Copy link
Member

Choose a reason for hiding this comment

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

We should double-check what's the implication of setting SendContentMd5 to true by default. Does it mean we will use CPU to compute MD5 of uploaded objects?

Copy link
Contributor

Choose a reason for hiding this comment

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

Does it mean we will use CPU to compute MD5 of uploaded objects?

I believe so (I have not stepped through or ran tests to confirm). In minio's code there are comments like this: // CRC32C is ~50% faster on AMD64 @ 30GB/s.

The motivation for the objstore PR seems to have been compatibility by default with Backblaze B2. On our side the currently open #6592 seems to be related to the same issue (but with a more indirect solution).

I think exposing the option makes sense for us now, but choosing the default in this situation is tricky since both options have downsides. true adds a hidden cost to everyone (it's not required), false adds a visible and correctable cost to some. Looking even further ahead, there's trailing headers (thanos-io/objstore#57) to keep in mind.

Seems like a tough call. I'm slightly more in favor of false.

Copy link
Member

Choose a reason for hiding this comment

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

My understanding is that it was false until now, so I'd just keep current behaviour, and perhaps expose an option to change it by people who need it. WDYT?

Copy link
Contributor

Choose a reason for hiding this comment

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

Minio warns that SendContentMd5 will cause higher memory usage "because of in-memory md5sum calculation". Also the code comment (linked to by Andy) states 50% worse perf with MD5 over CRC32. I would default to false, as that should be the behaviour before this PR, but we could expose the option.

Copy link
Contributor

Choose a reason for hiding this comment

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

My understanding is that it was false until now, so I'd just keep current behaviour

I would default to false, as that should be the behaviour before this PR

Seems like there's agreement on false then 👍

As an aside my understanding was that the past behavior had already changed in some way like:

  1. Minio not using MD5 or checksum when we didn't set true to send an MD5
  2. Minio starts using checksums when not sending an MD5 <-- breakage for some users happens here
  3. Now

Oddly the minio issue related to this was from quite a while ago. The Thanos bump pointed to in the objstore PR doesn't include a minio upgrade at all according to the go.sum. I feel like there's some confusion somewhere regarding what change actually caused this to surface more recently, but even if that archaeology was performed I don't think it changes anything for us.

Copy link
Contributor

Choose a reason for hiding this comment

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

Minio starts using checksums when not sending an MD5 <-- breakage for some users happens here

Yeah that was also my understanding from digging into the backstory (CRC checksum + an Amazon checksum header). It's confusing, and not well communicated 😞

Copy link
Contributor

Choose a reason for hiding this comment

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

Added -<prefix>.s3.send-content-md5 defaulting to false.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Do we need to support this MD5 thing at all in Mimir?

@renovate renovate bot changed the title fix(deps): update github.com/thanos-io/objstore digest to 37752ee (main) Update github.com/thanos-io/objstore digest to 37752ee (main) Nov 13, 2023
@renovate renovate bot changed the title Update github.com/thanos-io/objstore digest to 37752ee (main) fix(deps): update github.com/thanos-io/objstore digest to 37752ee (main) Nov 13, 2023
@renovate renovate bot changed the title fix(deps): update github.com/thanos-io/objstore digest to 37752ee (main) Update github.com/thanos-io/objstore digest to 37752ee (main) Nov 13, 2023
@renovate renovate bot changed the title Update github.com/thanos-io/objstore digest to 37752ee (main) fix(deps): update github.com/thanos-io/objstore digest to 37752ee (main) Nov 13, 2023
@andyasp andyasp requested a review from a team as a code owner November 14, 2023 21:53
Copy link
Contributor Author

renovate bot commented Nov 14, 2023

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

Warning: custom changes will be lost.

Copy link
Member

@pstibrany pstibrany left a comment

Choose a reason for hiding this comment

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

Thank you!

@andyasp andyasp merged commit 121075b into main Nov 16, 2023
27 checks passed
@andyasp andyasp deleted the deps-update/main-github.com-thanos-io-objstore-digest branch November 16, 2023 16:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants