Implement multiple tiers caching with fallback and backfilling#2581
Implement multiple tiers caching with fallback and backfilling#2581Felixoid wants to merge 16 commits intomozilla:mainfrom
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #2581 +/- ##
==========================================
+ Coverage 73.37% 74.17% +0.80%
==========================================
Files 68 70 +2
Lines 37338 39198 +1860
==========================================
+ Hits 27396 29077 +1681
- Misses 9942 10121 +179 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
0a4503d to
e069c90
Compare
38af4ef to
b70bd73
Compare
22b9835 to
445e8b9
Compare
7e50b5c to
3b5cfe5
Compare
|
I've done quite a few features today, like control for write error handling, and added server stats for multilevel caching. |
|
this is a huge patch, can you split a bit more? thanks |
|
Probably I could take something out of |
3fe062e to
1dc75d4
Compare
|
Rebased to the current This PR now contains the multi-level cache feature exclusively. Most of the changes are the tests and documentation, which are around 70%. |
44bfe59 to
b3eabb9
Compare
|
Hey-hey @trxcllnt, yeah, that's awesome. Thank you for the insight! The improvement for the The main question now is whether it is worth a) implementing in this PR, b) postponing until the next one, or rather c) implementing as a foundation for the changes, checking it works, and then moving to a dedicated PR. update: I revisit it, and, at least for now, the copying looks negligible. The cold-cache fillback usually should be more or less quick compared to other IO (disk write/network). We can improve it in follow-up PRs. |
b3eabb9 to
36ae45f
Compare
Merging this PR will not alter performance
Comparing Footnotes
|
36ae45f to
c5b0eef
Compare
mathstuf
left a comment
There was a problem hiding this comment.
Docs look good, but I would like to request one thing (feel free to punt for now though). I don't like that precedence is restricted to service types. For example, I may have:
- local disk
- NFS share ("disk")
- node-local Redis
- data center Redis
- local S3
- global S3
and want to interleave them in priority order. Basically: allow naming storages and then use the names in the chain configuration. Pure envvar configuration is probably lost, but maybe that's fine?
Overall, I love the idea, just asking for "one more thing" before things get baked in here. Again, feel free to ignore; it can probably be tacked on later too (by reserving all impl names or requiring a prefix on custom names).
|
In general, I like that changes. There's awesome work, thanks, @Felixoid! JFYI, you have a failed CUDA test. Please, recheck this point too. |
|
Thanks a lot for the review! @AJIOB: it looks like the CUDA tests were temporarily broken for an unknown reason. It was @mathstuf: as much as I like the idea, it looks like a next iteration for now. Probably, I'd like to work on it too. But it's for sure will be a design change for the configuration, and should be discussed in advance on how to proceed. Now, the approach is simple and logical for the current configuration. |
|
@sylvestre do you think we can proceed? |
There was a problem hiding this comment.
Bar the shell scripts, the core implementation does look sound. Also took a look @trxcllnt which is a more minimal approach with 2 cache layers (or using nesting).
Since this PR already got reviews I suggest to move it along.
@sylvestre if you find the time, take a look, otherwise I'll do sometime next week and we should land it imho.
|
Thanks for the review! I am on vacation RN, will try to find time to address the points somewhere around the following week. |
e40edd1 to
8214af5
Compare
8214af5 to
43089ab
Compare
|
@drahnr I addressed all points. Sorry that it took so long. I tried not to touch the laptop for work |
This PR addresses multiple requests to have tiered caching.
Closes #30
Closes #1020
Closes #2493
Closes #2566
What is added: