Skip to content
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

Investigate on Elastic scaling #4244

Open
10 of 11 tasks
axaysagathiya opened this issue Oct 13, 2024 · 6 comments
Open
10 of 11 tasks

Investigate on Elastic scaling #4244

axaysagathiya opened this issue Oct 13, 2024 · 6 comments
Assignees
Labels
T-investigation this issue/pr is an investigation, probably related to some bug with unknown causes.

Comments

@axaysagathiya
Copy link
Contributor

axaysagathiya commented Oct 13, 2024

Issue summary (Abstract)

Parity already merged some of the ES code in to the dev branch and probably it was deployed to Kusama and since Gossamer does not support it we need to investigate current state of ES.

Implementation details

Acceptance criteria (outcomes)

@axaysagathiya axaysagathiya added the T-investigation this issue/pr is an investigation, probably related to some bug with unknown causes. label Oct 13, 2024
@axaysagathiya axaysagathiya self-assigned this Oct 13, 2024
@haikoschol haikoschol changed the title Investigate on Elastic scalling Investigate on Elastic scaling Oct 21, 2024
@axaysagathiya
Copy link
Contributor Author

From what I have observed elastic scaling modifies

  • Backing subsystems
    • candidate backing subsystem
    • prospective parachain subsystem
    • statement distribution subsystem
  • provisioner subsystem
  • collator protocol

@axaysagathiya
Copy link
Contributor Author

axaysagathiya commented Oct 25, 2024

Async backing is the same as elastic scaling with a single core.

In the below images:
P = parachain block
R = relay chain block
C = core
B = backing
I = Inclusion

Elastic scaling with one core
image

Elastic scaling with two core
image

@axaysagathiya
Copy link
Contributor Author

With elastic scaling, parachains can use multiple cores to include multiple parablocks within the same relay chain block

The relay chain receives a sequence of parachain blocks on multiple cores, which are validated and checked if all their state roots line up during their inclusion, but assume they’re unrelated parachain blocks during backing, availability, and approvals.

The elastic scaling implementation will be rolled out in multiple phases.

  • In the first phase, elastic scaling is set to work on parachains with a trusted/permissioned collator set. With this restriction, it is possible to launch elastic scaling without changing the candidate receipt.
  • After successfully implementing the first phase, changes can be made to the candidate receipt so the collator set can be untrusted/permissionless again.
  • The final phase will feature full integration with the Cumulus framework, enabling parachains to be configured to access multiple cores continuously.

These two changes, multiple cores per parachain plus Agile Coretime, come together to enable elastic scaling.

@axaysagathiya
Copy link
Contributor Author

axaysagathiya commented Oct 25, 2024

@haikoschol
Copy link
Contributor

This forum post gives an overview of the current status and has a bunch more useful looking links.

@axaysagathiya
Copy link
Contributor Author

Q: When does it become incompatible with the previous version? What is the previous version (Async backing)?

Backwards compatible. Elastic scaling with 1 core = Async backing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
T-investigation this issue/pr is an investigation, probably related to some bug with unknown causes.
Projects
None yet
Development

No branches or pull requests

5 participants