Ensure that all in-memory records are checkpointed when not using --storage-tier #117
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently, a snapshot checkpoint in Tsavorite only takes a copy of records in mutable region (90% of memory) by default, since earlier records are expected to be flushed to disk and therefore available after recovery.
But when Garnet is configured to run as a cache, i.e., entirely in main memory, there is no backing device (rather, the backing device is a
NullDevice
).This PR proposes for a snapshot checkpoint to include the immutable region of memory in this case. This will ensure that DBSIZE of Garnet in "cache mode" (i.e., not using
--storage-tier
) before aSAVE
and after a restart with--recover
will be the same. That is, we will not lose the cache entries in the immutable region of memory.