Skip to content

Expose and use claim queue for asynchronous on-demand operability #1797

Open
@eskimor

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 in collation-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
No labels

Type

No type

Projects

  • Status

    In Progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions