Dynamic Cluster Scaling Using Idle Resources for Task Queues
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing cloud computing architectures face inefficiencies due to the need to continuously monitor and provision new clusters for processing tasks, leading to slow processing speeds and increased costs when clusters are underutilized or idle.
Innovation Solution
A method for dynamically scaling cloud resources by identifying idle or underutilized resources and assigning them to tasks without provisioning new resources, while continuously monitoring and scaling down resources when not needed.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If new clusters are provisioned to handle new processing tasks, then processing capacity is increased, but processing time is increased due to provisioning delays
Solution Approach 1:
The system pre-provisions multiple clusters with varying sizes before tasks arrive. When a task needs processing, the system selects from already-available clusters rather than provisioning a new one, eliminating provisioning delays while maintaining the ability to handle varying processing capacities
Solution Approach 2:
The system dynamically scales clusters by adding or removing nodes within existing clusters based on task requirements. This allows the processing capacity to adapt to changing workloads without the time penalty of provisioning entirely new clusters, as nodes can be added/removed relatively quickly
2Productivity
If clusters are maintained ready for processing, then processing speed is improved, but cost is increased due to payment for idle resources
Solution Approach 1:
The system dynamically adjusts cluster sizes by adding nodes when tasks arrive and removing nodes when clusters become idle. This elastic scaling allows the system to maintain high processing speed when needed while eliminating costs associated with maintaining permanently-sized clusters, paying only for actively-used resources
Solution Approach 2:
The system changes the number of active nodes in clusters based on real-time task requirements. When tasks are present, clusters scale up to process work; when idle, clusters scale down to minimize costs. This parameter adjustment resolves the contradiction between maintaining processing capability and reducing idle resource costs
3Reliability
If minimum number of nodes are maintained in clusters, then processing capability is ensured, but cost is increased due to payment for underutilized resources
Solution Approach 1:
The system replaces fixed minimum node requirements with dynamic node allocation. Instead of guaranteeing a minimum number of nodes permanently, the system provisions exactly the number of nodes needed for each task and releases them when complete, eliminating costs from underutilized minimum-node clusters while maintaining processing capability when required
4Productivity
If maximum capacity is set for clusters, then resource utilization is limited, but new tasks must wait for cluster provisioning
Solution Approach 1:
The system segments the single large cluster into multiple smaller clusters of varying sizes. This segmentation allows the system to handle new tasks by provisioning small clusters quickly rather than waiting for a large cluster to become available, reducing task queue time while maintaining effective resource utilization through the pool of smaller clusters
Data Source
AI summary
Systems and methods for dynamically selecting idle or underutilized resources to complete tasks in a queue are disclosed. The systems and methods include maintaining a plurality of processing resources operable to process one or more tasks. Each resource is scalable to increase or decrease a number of nodes available to perform the one or more tasks. The systems and methods include maintaining a queue for tasks to be processed, receiving a first task requiring a processing resource, and accessing at least a portion of the plurality of processing resources. A first processing resource of the plurality of processing resources is identified that is operating below a predetermined processing threshold. The first processing resource is assigned to the first task and scaled up according according to a processing requirement of the first task.


