Open
Description
In order for on-demand (and other forms of more exotic scheduling) to take advantage of asynchronous backing we need to expose the claim queue to the node side and have validators have accept collations for any ParaId
that is in the claim queue, not just the next scheduled entry.
- Expose Expose
ClaimQueue
via a runtime api and use it incollation-generation
#3580 - Make use of it in collator protocol so collations will be accepted in advance.
- Make use of it in collators: Implement strategies for the right lookahead in collators (see comment below)
- Fix validator usage as well. E.g. in backing we will need to be more lenient and accept statements for any para in the current claim queue.
- Orthogonal: Is the runtime (inclusion) already lenient enough. This is not directly related to exposure of the claim queue, but we need to double check that the runtime itself is taking it into account everywhere.
- Ensure fairness between paras in the collator protocol.
- Statement distribution and other subsystems need to take full claim queue into account, not only the next scheduled.
- Verify asynchronous backing working as expected with a core shared by at least three paras, in round robin.
Fairness in collator protocol
To ensure one para can not starve another in the collator protocol, we should become smarter on what collations to fetch. E.g. if we have the following claim queue:
[a, b, c, d]
and we have the following advertisements:
a,a,a,a,a,a,b,c,d
Our fetches should look like round robin:
a,b,c,d,a,a,a,a,a
Metadata
Assignees
Labels
No labels
Type
Projects
Status
In Progress