-
Notifications
You must be signed in to change notification settings - Fork 8
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
Scaler Roadmap #60
Comments
Butler: Worker Orchestration ServiceButler is an optional service that handles worker lifecycle management on behalf of Scaler. Webhooks are used for Scheduler-Butler communication and anyone can write a Butler service implementation on the platform of their choice without knowing the internal mechanics of Scaler. Butler Webhook API
Worker Scaling PolicyWorker scaling policies are still in the research phase, but ideally there should be a one-size fits all policy with a single tunable parameter which we will call "responsiveness"
Tag-Based Task RoutingCurrently Scaler treats each worker the same for routing decisions despite possible differences in the underlying hardware or software. Tags ensure that tasks are routed to the workers that are most suited to handle the task. This is useful for workers with special hardware such as GPUs and associating a worker with a user/project. Example Tags
The scheduler will route a task to a worker when the tags in a task is a subset of the tags associated with the worker. Object Storage SeparationCurrently the scheduler keeps all objects in memory which leads to high memory usage. It is better to decouple object storage from the scheduler, so the scheduler is solely responsible for task scheduling and not object data management. Decoupling the object storage into a separate service will make it possible to reuse existing services such as Redis and Memcached. Object Storage API
Storage Backends
Performance Considerations
Alternative Scaler ImplementationsScaler's protocol is language agnostic and can support programming languages other than Python. Scaler scheduler performance can be improved by switching to a high-performance language such as C++/Rust and client/worker implementations can be created to support workflows in other languages. Additional Compute BackendsWe've added support for IBM Spectrum Symphony and we're also looking at supporting more compute backends:
Note that certain compute backends utilize a Butler to manage workers and support elastic computing. |
use more bullet points instead of long sentences, with explanation/example for each section |
On "Tag-Based Task Routing".It is aforementioned that
I propose to change the word "subset" to "mostly intersected set". Meaning we route it to the worker with maximum number of same tags. This is because:
Exact match or blur match?
Tags priority?
Finite set or infinite set?
Since I have nothing better to do, I am happy to implement this. Please give me some advise on how to tackle these issues. gxu |
This issue is to describe what's the future state of scaler should be, so it will requires a lot works, and this is to describe what's the future state will be, below is an very simplified version of example layout:
The text was updated successfully, but these errors were encountered: