-
Notifications
You must be signed in to change notification settings - Fork 745
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Runtime: Accept full chain for para on multiple cores (elastic scaling) #3131
Comments
It is not clear if this one refers to scheduler to assign multiple cores per para in same RCB |
or to accepting multiple parablocks in paras_inherent? |
This is about accepting multiple backed candidates in paras_inherent, if there are multiple cores for that para. |
Scheduler should already be fine. |
currently, the check for whether the backed candidate is a descendant of the current para head is done in: for this to work with multiple candidates, I think we'll need to change the format of the inherent data to contain the parent_head_hash, so that we're able to check the dependency chain and also check the PersistedValidationData hash against the one in the candidate receipt |
I actually also need to change the |
I don't think this is necessary. It seems right now we check dependency chains via |
There is a hacky half-baked solution for this. If we establish the contract that provided Things get more tricky if there are holes and e.g. the candidate for core 1 of that para is missing, then we are off by one. We could get around this by inserting dummy |
Another possible hack 😬 : We could change the format of |
We'll require the candidate recipets appear backed on the relay chain in order? |
That would be an optimization I guess, otherwise we should be able to establish ordering based on the parent heads. |
I think this is by far the least intrusive method but there will still be breakage as current nodes rely on the bitfield len to identify the backing group size in client/runtime code. This will also make it subtle opt in interface. We'd probably have to introduce a temporary node side feature or runtime API to enable this only on |
Changes needed to implement the runtime part of elastic scaling: #3131, #3132, #3202 Also fixes #3675 TODOs: - [x] storage migration - [x] optimise process_candidates from O(N^2) - [x] drop backable candidates which form cycles - [x] fix unit tests - [x] add more unit tests - [x] check the runtime APIs which use the pending availability storage. We need to expose all of them, see #3576 - [x] optimise the candidate selection. we're currently picking randomly until we satisfy the weight limit. we need to be smart about not breaking candidate chains while being fair to all paras - #3573 Relies on the changes made in #3233 in terms of the inclusion policy and the candidate ordering --------- Signed-off-by: alindima <alin@parity.io> Co-authored-by: command-bot <> Co-authored-by: eskimor <eskimor@users.noreply.github.com>
…h#3479) Changes needed to implement the runtime part of elastic scaling: paritytech#3131, paritytech#3132, paritytech#3202 Also fixes paritytech#3675 TODOs: - [x] storage migration - [x] optimise process_candidates from O(N^2) - [x] drop backable candidates which form cycles - [x] fix unit tests - [x] add more unit tests - [x] check the runtime APIs which use the pending availability storage. We need to expose all of them, see paritytech#3576 - [x] optimise the candidate selection. we're currently picking randomly until we satisfy the weight limit. we need to be smart about not breaking candidate chains while being fair to all paras - paritytech#3573 Relies on the changes made in paritytech#3233 in terms of the inclusion policy and the candidate ordering --------- Signed-off-by: alindima <alin@parity.io> Co-authored-by: command-bot <> Co-authored-by: eskimor <eskimor@users.noreply.github.com>
We accept N candidates for N scheduled cores, if those candidates form a chain back to the last included one.
The text was updated successfully, but these errors were encountered: