This repository has been archived by the owner on Sep 26, 2019. It is now read-only.
Don't delete completed tasks from RocksDbTaskQueue #1099
Merged
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.
PR description
Given that we no longer restore the contents of the task queue when resuming a world state download (so that we can use the in-memory cache for pending nodes) we can also skip deleting completed tasks.
The deletion is a significant bottleneck because to find what task we can delete up to we have to iterate through every outstanding task even before the time RocksDB needs to perform the delete.
When fast sync completes the entire database is deleted and we ensure we start from a clean slate by destroying any existing database when creating RocksDbTaskQueue.