Task Packing Scheduling for Cloud Cluster Resource Optimization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Uniform resource allocation strategies in cloud-based big-data processing lead to difficulties in downscaling clusters due to long-running tasks and state left on servers, resulting in increased costs and inefficient resource utilization, as servers cannot be deprovisioned even when workload can be handled by fewer nodes.
Innovation Solution
Implementing a 'Task Packing' or 'Container Packing' scheduling algorithm that categorizes servers into high, medium, and low usage categories, prioritizing task scheduling on medium and low usage servers before high usage ones, allowing for more efficient downscaling and cluster utilization while preserving data locality preferences.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If uniform resource allocation is used to distribute tasks evenly across all servers, then reliability is improved and server utilization is maximized, but the ability to downscale the cluster is reduced and costs increase
Solution Approach 1:
The patent segments servers into different categories (first set with long-running tasks, second set with short-running tasks) and applies different scheduling strategies to each segment. This allows the system to maintain reliability for long-running tasks while enabling downscaling of servers running only short-running tasks, thus resolving the contradiction between reliability and resource waste.
Solution Approach 2:
The patent applies different quality characteristics to different parts of the system by treating long-running task servers differently from short-running task servers. Servers in the first set are protected from deprovisioning to ensure reliability, while servers in the second set can be downscaled to reduce waste, implementing local quality differentiation.
2Productivity
If tasks are evenly distributed across all available servers, then productivity is improved through parallel processing, but the complexity of managing task distribution and state tracking increases
Solution Approach 1:
The patent divides the server pool into distinct segments (first set and second set) with different scheduling rules. This segmentation simplifies the scheduling logic by applying different strategies to different segments rather than managing all servers uniformly, reducing the complexity of tracking task states across heterogeneous server groups while maintaining high productivity through parallel processing.
3Reliability
If servers are kept available to handle long-running tasks, then reliability is maintained, but hardware costs increase due to inability to deprovision servers
Solution Approach 1:
The patent segments servers into those running long-running tasks (first set) and those running short-running tasks (second set). Servers in the first set are maintained to ensure reliability and application continuity, while servers in the second set can be deprovisioned to reduce hardware resources, thus resolving the contradiction between reliability and hardware quantity.
Solution Approach 2:
The patent enables discarding of servers from the second set that are running only short-running tasks, allowing the system to recover hardware resources by deprovisioning these servers while maintaining reliability through the first set of servers that handle long-running tasks.
Data Source
AI summary
In general, the invention is directed to systems and methods of distributing tasks amongst servers or nodes in a cluster in a cloud-based big data environment, including: establishing a high_server_threshold; dividing active servers/nodes into at least three (3) categories of high usage servers, comprising servers on which usage is greater than the high_server_threshold; medium usage servers, comprising servers on which usage is less than the high_server_threshold, but is greater than zero; and low usage servers, comprising servers that are currently not utilized; receiving one or more tasks to be performed; scheduling the tasks by: first requesting that medium usage servers take tasks; if tasks remain that are not scheduled on the medium usage servers, schedule remaining tasks on low usage servers; if any tasks remain that are not scheduled on medium usage servers or low usage servers, scheduling remaining tasks on high usage servers.