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

Feat/shared cache mk2 #581

Merged
merged 35 commits into from
Nov 26, 2021
Merged

Feat/shared cache mk2 #581

merged 35 commits into from
Nov 26, 2021

Conversation

flub
Copy link
Contributor

@flub flub commented Nov 15, 2021

Start of shared cache implementation.

TODO:

  • Cache service
  • Non-blocking APIs
  • Non-copying APIs
  • Handle GCP not found correctly
  • Tests

NATIVE-248

loewenheim and others added 17 commits November 11, 2021 18:32
wip, because i have to run
Doesn't look like ops wants this and only introduces more complexity.
We used String or Path before to denote locations on the shared
cache.  Making this a specific key struct with info about what it
contains is much more flexible and will allow us to move metrics etc
to the right place.
Now that we have a SharedCacheKey we can easily do this and it makes
more sense.
This results in some simplifications of the resulting code.
Now that symbolic has a ByteView::map_file_ref() constructor we can be
a lot nicer on the filesystem and keep using filedescriptors to
interact with the files.
just boring plumbing
Makes filesystem ops async as well, overlooked that before.
crates/symbolicator/src/services/shared_cache.rs Outdated Show resolved Hide resolved
crates/symbolicator/src/services/shared_cache.rs Outdated Show resolved Hide resolved
crates/symbolicator/src/services/shared_cache.rs Outdated Show resolved Hide resolved
crates/symbolicator/src/services/cacher.rs Outdated Show resolved Hide resolved
crates/symbolicator/src/services/cacher.rs Outdated Show resolved Hide resolved
crates/symbolicator/src/services/cacher.rs Outdated Show resolved Hide resolved
Floris Bruynooghe added 3 commits November 23, 2021 11:41
Plus avoid storing this in memory.  We can't put several gigabytes
into memory.
@flub flub marked this pull request as ready for review November 23, 2021 13:31
@flub flub requested a review from a team November 23, 2021 13:31
Floris Bruynooghe and others added 10 commits November 25, 2021 09:21
- Improve how we reopen the file.

- Fix notfound on filesystem.

- Tests test filedescriptor reading and writing in the same weird and
  wonderful ways as the Cacher and its CacheItemRequest users do.
These don't work yet, but probably due to incorrect test credentials.
Also fixup tests by making sure each GCS Object has a unique cache
path.
That was pretty handwavy.
We use Body::wrap_stream to upload the body, so it is already streamed
and I think this should be covered already.
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