Manifests shrink when there are fewer chunk references #202
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.
In the previous algorithm we were copying all chunks from the previous version to the new manifest (modulo changes in the current session).
Now, we only copy the chunks we need to copy. For example, after a
clear
operation, there will be 0 references in the manifest.Most of the commit is moving code around to make it accessible from
distributed_flush
, that is, moving it from theRepository
impl to free functions. The only important change happens indistributed_flush
, where instead of starting from all the chunks in the previous manifest, we use theall_chunks
iterator.A new test verifies manifests shrink when we delete chunks or whole arrays.
Implements: #174