Requirements of a Distributed Task Scheduler's Design
Explore the functional requirements essential for a distributed task scheduler, focusing on task submission, resource allocation, and efficient utilization. Define critical non-functional criteria such as availability, durability, and fault tolerance.
We'll cover the following...
Requirements
We will outline the functional and non-functional requirements for designing a distributed task scheduler.
Functional requirements
The system must support the following core capabilities:
Submit tasks: Users can submit tasks for execution.
Allocate resources: The system assigns the necessary resources to each task.
Remove tasks: Users can cancel submitted tasks.
Monitor task execution: The system tracks execution and reschedules tasks if they fail.
Efficient resource utilization: Resources (CPU and memory) must be used efficiently to optimize time and cost. For example, light tasks should not occupy heavy resources. Fairness ensures that all tenants receive equitable access to resources within their cost class.
Release resources: The system reclaims resources immediately after a task completes.
Show task status: Users can view the current status of their tasks.