Look further in ClaimQueue
during collation generation
#4049
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.
Part of #1797
Implementation for #1797 (comment)
When generating a collation the first two elements from the
ClaimQueue
are examined:ParaId
scheduled next. As suggested in the linked comment we will build a collation for this slot on startup or if ourParaId
was not scheduled for two (or more) slots. Providing a collation for depth 0 will probably time out on the first try but the collation will be ready for the retry,ParaId
is scheduled there.To keep track of the work done in previous iterations of the
collation-generation
run loop aHashSet
is passed tohandle_new_activations
. It persist all work scheduled in the current iteration and is overwritten on the next iteration. I used this instead of abool
indicating if this is a first iteration or not (as suggested in the comment) because I want to cover the case when the collator'sParaId
has not been scheduled for two consecutiveClaimQueue
slots.This PR is still work in progress.
TODOS: