-
Notifications
You must be signed in to change notification settings - Fork 133
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
Better support for caching / checkpointing development workflow - umbrella issue #940
Comments
I took one of the Again, this is for exploration of possibilities, not to impose paradigms on you :) In this first pass I noticed two things I was missing in hamilton compared to targets when it comes to caching:
|
For inspiration, the developer documentation of how |
Update - we've got a candidate API: c = CacheStore() # this could house various strategies, e.g. basic checkpointing, to more sophisticated fingerprinting.
dr = driver.Builder()...with_cache(c, **kwargs).build()
# first run -- nothing cached
dr.execute([output1], inputs=A)
# change some code -- any code: upstream or downstream of what was run before
# rebuild driver
dr = driver.Builder()...with_cache(c, **kwargs).build()
# this should recompute as needed -- and recompute downstream as needed
dr.execute([output2], inputs=A)
# no-op if run again
dr.execute([output2], inputs=A)
# should only recompute what inputs impact -- going downstream as needed.
dr.execute([output2], inputs=A') Then there's some nuance around:
|
Updates:
|
Hi everyone! We just merged #1104 which introduces caching as a core Hamilton feature. We invite you to try it via Google Colab and review the docs! |
CC @jmbuhr |
Very cool, excited to try it! |
Is your feature request related to a problem? Please describe.
We need a simpler caching & checkpointing story that has full service visibility into what's going on.
Describe the solution you'd like
These should come with the ability to:
Prior art
Could use https://books.ropensci.org/targets/walkthrough.html#change-code as inspiration.
Additional context
Slack threads:
Next steps:
TODO: write up tasks in this issue into smaller and manageable chunks.
The text was updated successfully, but these errors were encountered: