Dynamic Application Retention in Distributed Servers
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing application hosting systems face inefficiencies in managing fluctuating workloads due to unpredictable popularity of applications, leading to inefficient allocation and reallocation of computing resources, resulting in suboptimal user experiences and resource waste.
Innovation Solution
An application server system with an application master that dynamically distributes and undistributes applications based on usage metrics, using non-volatile and volatile storage to optimize resource allocation, retaining applications in volatile storage when usage criteria are met and removing them otherwise, ensuring efficient resource utilization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If computing resources are pre-allocated to handle load spikes, then system reliability is improved, but resource waste increases due to unused pre-allocated resources
Solution Approach 1:
The system dynamically adjusts the allocation of computing resources based on real-time demand conditions. Application servers can allocate resources to handle load spikes when needed, then release those resources when demand decreases, transforming the static pre-allocation model into a dynamic adaptive model that matches resource availability with actual workload requirements.
Solution Approach 2:
The system changes the parameter of resource allocation from fixed to variable based on workload conditions. By monitoring system state and adjusting resource allocation parameters dynamically, the system can optimize between reliability (having resources available) and efficiency (not wasting resources), allowing resource levels to fluctuate according to actual demand patterns.
2Reliability
If computing resources are increased to handle unpredictable popularity fluctuations, then service quality is improved, but resource utilization efficiency deteriorates
Solution Approach 1:
The application servers autonomously monitor their own workload conditions and automatically allocate or release computing resources as needed. This self-service mechanism allows each server to independently optimize its resource utilization based on actual demand, improving both service quality during high load and resource efficiency during low load without external intervention.
Solution Approach 2:
The system implements feedback loops where application servers continuously monitor workload conditions and adjust resource allocation accordingly. This feedback mechanism ensures that resource allocation responds to actual demand patterns, maintaining service quality when needed while avoiding resource waste during low-utilization periods, thereby improving overall resource utilization efficiency.
3Stability of the object's composition
If computing capacity is allocated for prolonged periods, then system stability is improved, but adaptability to sudden load changes deteriorates
Solution Approach 1:
The system transitions from static long-term resource allocation to dynamic short-term allocation that can adapt quickly to changing conditions. By allowing resource allocation to be adjusted in shorter timeframes based on current demand, the system maintains stability through consistent service delivery while simultaneously improving adaptability to sudden load changes and popularity fluctuations.
Data Source
AI summary
In a distributed application execution system having an application master and a plurality of application servers, each application server includes one or more processors and memory storing one or more programs. The one of more programs include instructions for storing in non-volatile storage a plurality of applications distributed to the application server by the application master, for loading into volatile storage and executing a respective application in response to a received request, and for returning a result to the request. In addition, the one of more programs include instructions for conditionally retaining the respective application in volatile storage, for responding to a future request, when criteria, including at least predefined usage level criteria, are met by the respective application, and otherwise removing the respective application from volatile storage upon returning the result to the request.


