-
Notifications
You must be signed in to change notification settings - Fork 439
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
pageserver: use conditional GET for secondary tenant heatmaps #9236
Conversation
5058 tests run: 4872 passed, 0 failed, 186 skipped (full report)Flaky tests (7)Postgres 17
Postgres 16
Postgres 15
Postgres 14
Code coverage* (full report)
* collected from Rust tests only The comment gets automatically updated with the latest test results
84c2503 at 2024-10-04T10:07:55.974Z :recycle: |
@arpad-m This is a quick and dirty prototype, which just adds a
Alternatively, we can go with the current approach in this PR, or add a new |
idk about that one, to me it doesn't seem worth the cost in the "happy" path where you just want to download a file. |
Cool, I'll add
Yeah, I also came around to this -- it'd just be annoying in the common case. Will keep the error. |
It would also be nice to have a test in
|
f2a9940
to
531c848
Compare
@arpad-m Added a test case too, should be ready to go now.
I'll submit a separate PR for a I split out the |
Problem
Secondary tenant heatmaps were always downloaded, even when they hadn't changed. This can be avoided by using a conditional GET request passing the
ETag
of the previous heatmap.Resolves #6199.
Summary of changes
The
ETag
was already plumbed down into the heatmap downloader, and just needed further plumbing into the remote storage backends.DownloadOpts
struct and pass it toRemoteStorage::download()
.DownloadOpts::etag
field, which uses a conditional GET and returnsDownloadError::Unmodified
on match.Checklist before requesting a review
Checklist before merging