-
Notifications
You must be signed in to change notification settings - Fork 4
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
Add support for cache eviction #136
Comments
See also #89 for some discussion on the topic. |
Here is some initial tinkering aimed at limiting memory usage which aims to "give users the option to save a result state, but ensure incremental states don't sit around eating up resources" (as suggested by @weaversa in #89): https://github.com/GaloisInc/argo/tree/feature/bounded-memory-usage Approach DetailsIn that branch, Argo essentially aims to guarantee a bound on memory use by:
The main cost of such an approach is that arbitrary states no longer in cache cannot be "replayed" or "resurrected" automatically when a request mentioning them is received once they are evicted (such a state would either have to be manually pinned or rebuilt by the client through standard interactions). Other memory leaks...?I thought there were some memory leaks (glancing at MacOS's Activity Monitor and seeing the Memory usage skyrocket), but after doing some GHC heap profiling I'm... less convinced there is an issue: https://gist.github.com/pnwamk/1accd1f95fcaabb5ac30d963aab0ee0f The memory usage does seem to climb when query numbers climb in the socket case, but the jump from Remaining Questions
|
I updated the comments above regarding a possible memory leak with some actual GHC Heap profiling data. When being profiled the file-echo-api server seem more or less bounded in both cases. |
There is now rudimentary support for bounded cache size, flushing caches, etc. If more complex support is desired we can open an issue then with those specific requirements. |
No description provided.
The text was updated successfully, but these errors were encountered: