Server Resource Balancing via Suspend-Resume Strategy
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current systems lack efficient resource orchestration in cloud environments, leading to resource shortages, unresponsiveness, and inefficient use of allocated resources due to the lack of application priority awareness in traditional operating systems and load balancers, resulting in suboptimal performance and increased costs for customers and operators.
Innovation Solution
A centralized application resource orchestration (ARO) layer that dynamically allocates resources based on application priority, suspending lower-priority tasks when higher-priority tasks are active, and distributing resources efficiently across servers to ensure responsiveness and optimal use of allocated resources.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional operating systems and load balancers are used without application priority awareness, then device complexity is reduced, but system responsiveness and resource allocation efficiency deteriorate
Solution Approach 1:
A centralized application resource orchestration (ARO) layer is introduced as an intermediary between applications and servers. This ARO layer receives task requests from applications, determines priorities, suspends lower-priority tasks, and distributes resources to appropriate servers. The intermediary layer resolves the contradiction by adding managed complexity at a single point rather than throughout the entire system, improving responsiveness while containing complexity.
Solution Approach 2:
The system is segmented into distinct functional layers: the ARO layer that handles priority management and resource orchestration, and the server layer that executes tasks. This segmentation allows the complex priority-aware resource allocation logic to be isolated in the ARO layer, improving system responsiveness without requiring complexity in every individual server or application component.
2Productivity
If resources are allocated without application priority awareness, then ease of operation is improved, but productivity and resource utilization efficiency deteriorate
Solution Approach 1:
The ARO layer automatically determines application priorities and manages resource allocation without requiring manual intervention. Applications simply submit tasks with priority information, and the ARO layer autonomously processes suspensions and resource distribution. This self-service mechanism improves productivity through efficient priority-based resource utilization while maintaining ease of operation by eliminating the need for complex manual resource management.
3Reliability
If lower-priority tasks continue executing without suspension, then loss of time is reduced for those tasks, but reliability of higher-priority task execution deteriorates
Solution Approach 1:
The system dynamically adjusts task execution based on priority changes. When a higher-priority task arrives, the ARO layer dynamically suspends lower-priority tasks and reallocates resources. This dynamic behavior ensures reliable execution of higher-priority tasks while minimizing time loss for lower-priority tasks by suspending them only when necessary rather than continuously blocking them.
Data Source
AI summary
The present disclosure involves systems, software, and computer implemented methods for resource allocation and management. One example method includes receiving, by a first dispatcher in a dispatching layer, a first request to run a first task for a first application, the first request including a first application priority. A determination is made that the first application priority is lower than at least one higher application priority of another application. Execution of the first application is suspended based on determining that the first application priority is lower than the at least one higher application priority. An indication that an application having a higher application priority has finished is received. A determination is made that the first application priority is a highest application priority of currently-running applications. The first task for the first application is dispatched to a first application server.


