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

Allow solo to deploy pre-configured network to support desired workload #97

Closed
1 task done
Tracked by #47
leninmehedy opened this issue Feb 28, 2024 · 6 comments · Fixed by #175
Closed
1 task done
Tracked by #47

Allow solo to deploy pre-configured network to support desired workload #97

leninmehedy opened this issue Feb 28, 2024 · 6 comments · Fixed by #175
Assignees
Labels
New Feature A new feature, service, or documentation. Major changes that are not backwards compatible. P0 An issue impacting production environments or impacting multiple releases or multiple individuals. released on @0.24.x released

Comments

@leninmehedy
Copy link
Member

leninmehedy commented Feb 28, 2024

Requested Feature

`solo` could have switches to deploy networks with pre-configured resources to support various TPS.

For example, we could support :
 - `large` (<= 10K TPS), 
 - `medium` (<= 5K TPS)
 - `small` (<= 1K TPS)

Currently starting a network requires running a sequence of commands. While that is beneficial to have more control, `solo` could also provide a simpler command like `start` and `stop` as below:
`solo start --profile large`
`solo start --profile medium`
`solo start --profile small`

Business Need

Make it easier for user to deploy a network that meets their need.

Currently it requires users to try different settings to see which configuration achieves the desired TPS. We could do the heavy lifting of determining the resources required for various desired network load and let user deploy it confidently.

We also need to tell the cluster configuration that is required for `solo` to be able to deploy a network to achieve the desired workload.

Tasks

  1. Feature Enhancement P1
    leninmehedy
@leninmehedy leninmehedy added New Feature A new feature, service, or documentation. Major changes that are not backwards compatible. Pending Triage New issue that needs to be triaged by the team labels Feb 28, 2024
@leninmehedy leninmehedy changed the title Allow solo to deploy pre-configured network to support various workload Allow solo to deploy pre-configured network to support desired workload Feb 28, 2024
@JeffreyDallas
Copy link
Contributor

Agree this, so from DApp developers' perspective, they don't need to care about
how solo works and what is under the hood.
It is better that they don't even aware of cluster being used. (Solo does everything behind the door)

@jeromy-cannon
Copy link
Contributor

jeromy-cannon commented Feb 28, 2024

great idea. Would they be able to pass more parameters/options, or would they be locked into whatever the profile is configured at?

For example, it might run faster without Hedera Mirror Node/Explorer.

From a triage perspective it is probably a P2, unless it is needed for a major goal of an upcoming iteration.

@leninmehedy
Copy link
Member Author

leninmehedy commented Mar 6, 2024

I asked Richard, and he suggested we go with the below for now:

  1. Large = 48 vCPU 256GB RAM (TPS: >=10K <=20K)
  2. Medium = 36 vCPU 128GB RAM (TPS: >=3K <=8K)
  3. Small = 12vCPU 32GB RAM (TPS: >=1K <=3K)
  4. Tiny = 4vCPU 8GB RAM (TPS: < 1K)

Nathan suggested that there should be command switches to configure the resources.

Command switches could be similar to gsutil's pattern to set node-taints and labels etc: https://cloud.google.com/sdk/gcloud/reference/container/node-pools/update#--node-taints

@leninmehedy leninmehedy self-assigned this Mar 6, 2024
@leninmehedy leninmehedy added P1 High priority issue. Required to be completed in the assigned milestone. and removed Pending Triage New issue that needs to be triaged by the team labels Mar 6, 2024
@leninmehedy leninmehedy added P0 An issue impacting production environments or impacting multiple releases or multiple individuals. and removed P1 High priority issue. Required to be completed in the assigned milestone. labels Mar 14, 2024
@leninmehedy
Copy link
Member Author

I prepared a rough estimate and definition of these pre-configured profiles here: https://www.notion.so/swirldslabs/Pre-configured-Profiles-DRAFT-8c843489a92048eabf4b68db46a9ba46?pvs=4

@swirlds-automation
Copy link
Contributor

🎉 This issue has been resolved in version 0.24.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

@swirlds-automation
Copy link
Contributor

🎉 This issue has been resolved in version 0.24.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
New Feature A new feature, service, or documentation. Major changes that are not backwards compatible. P0 An issue impacting production environments or impacting multiple releases or multiple individuals. released on @0.24.x released
Projects
Status: ✅ Done
Development

Successfully merging a pull request may close this issue.

4 participants