-
Notifications
You must be signed in to change notification settings - Fork 5
Consider adding download caching to the client #29
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
Comments
A few caching approaches based on complexity, featurefulness, efficiency, package:
Anything requiring interaction with individual endpoints may suffer from needing to think about details and bugs in the individual endpoints, so it probably would just be applied to a few of the endpoints. I think the two major development approaches would be:
And an orthogonal detail: we sometimes have updates to an issue within its publication window (plus replication delays), so real-time queries of that issue will not match retrospective queries of that issue. This detail can be addressed in a few ways but might mean caching will require some careful messaging and/or be limited to advanced users. (This is still ignoring the possibility of nonrecent history mangling in exceptional circumstances.) |
Priority here is hard to judge. [We'll want to play around with using
|
Brainstorm: Which package should contain the caching code is a tricky design question. And it's something we want to get right ahead of time - don't want to add and then remove caching functionality later.
Suggestion: I am leaning toward the latter, mostly because duplicating the caching system in two languages would take a lot of work. I also wonder if it may be a scope drift for Observation: An updating caching system feels like duplicating the API server locally. Request your local store first and then request the missing / stale pieces from the remote store. Wonder if it's a crazy idea to write a caching system as a local API (e.g. using hug). |
|
So I wanted to jot down some (public) notes on comparing "out of the box" caching methods. This post was the most extensive single discussion of options I could find (check boxes indicate ones that are superseded by others):
I'm going to experiment with thor but if folks have thoughts lmk. We thankfully have a very natural |
oh, we also need a default caching location:
|
We converged on:
Also |
I would think the following are higher priority than trying to implement streaming:
Originally posted by @brookslogan in #13 (comment)
We have work on adding data caching to evalcast here. There is the option of porting that logic here. It would be natural to keep data-fetching/caching logic contained in this package. Then evalcast and the packages that supersede it can simply be updated to use this client and get caching functionality for free.
The text was updated successfully, but these errors were encountered: