-
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
Cache component instances on a Motion server, within a memory budget #265
Comments
Algorithm DescriptionConsider the following:
On request for component instance
|
Worst Case AnalysisThe worst-case scenario for this algorithm occurs when there is a frequent alternation between requests for different sets of components, where each set of components is collectively larger than the cache size. This situation would force the algorithm to continuously evict and load components, leading to high load times. Here are some conditions for worst case scenarios:
|
Actually, we should implement some variant of AdaptSize: https://www.usenix.org/system/files/conference/nsdi17/nsdi17-berger.pdf |
Ok, after reading the paper, we should just implement AdaptSize. Given
The question becomes how to pick |
Currently component instances are flushed and shut down, but we may benefit from keeping instances alive because the state won't have to load again. Some things to consider:
For the first bullet, we can write some algorithm that prioritizes keeping large & frequently-accessed components in memory.
For the second bullet, we can check our version against the latest version in Redis, and if the component is stale, we can refresh it.
The text was updated successfully, but these errors were encountered: