Improve parallel catchup v2 resource consumption
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
- Issue type
- Feature
- Clarity
- Needs clarification
- Activity status
- Quiet
- Tech stack
- fsharp, kubernetes
- Domain
- distributed-systems, infrastructure
Research direction
Start by tracing the parallel catchup v2 mission and its worker-pod lifecycle. Review how pods are created, jobs retried, and pods torn down; done means idle workers can be released before mission completion and stuck jobs can be retried earlier without leaving unnecessary Kubernetes capacity running.
Written by the indexing model from the issue text.
Description
What problem does your feature solve?
Currently the parallel catchup v2 mission works in this way:
- Spin up n worker pods
- Workers pick up jobs
- When all jobs are complete, or when the mission fails, the worker pods are torn down
This can cause excessive resource consumption. For example
- We spin up 1024 worker pods. This results in dynamic provisioning of k8s workers (possibly hundreds of them depending on instance type)
- If a job gets stuck it will be retried, but only once all other jobs are finished
- The stuck job may take a while to complete. During this time we keep all worker pods, and k8s workers, online, even though only one job is running
Another scenario is where a significant portion of the jobs finish. We may have 50% of the worker pods doing some work, yet we keep all of them up.
What would you like to see?
It would be good for the worker pods to be torn down even before the mission finishes. Once they are torn down karpenter should be able to release some workers to reduce cost.
Perhaps we can also improve retry logic to catch dead jobs earlier. If we can retry earlier in the run we'll avoid long tail.
What alternatives are there?
- Dominant language
- F#
- Stars
- 10
- Forks
- 22
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 3
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from stellar/supercluster
-
bug
Difficulty 3/5 1-2 days Newbie friendliness 48/100
stellar/supercluster#432 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 48/100
stellar/supercluster#418 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 48/100
stellar/supercluster#409 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 48/100
stellar/supercluster#401 · 1 comment ·
-
Difficulty 3/5 1-2 days Newbie friendliness 66/100
stellar/supercluster#399 ·
All issues in stellar/supercluster
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
spring-projects/spring-modulith#1895 ·
-
community-backlog core stability
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
ray-project/ray#66333 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
lance-format/lance-ray#5297 ·
-
area/harness bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
agentscope-ai/agentscope-java#3197 · 2 comments ·