Application Server Priming for Dynamic Resource Allocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing systems face inefficiencies in managing computing resources for applications with unpredictable popularity, leading to inefficient allocation and reallocation of resources during load spikes and dips, which affects user experience and resource utilization.

Innovation Solution

The implementation of an application execution system that uses a priming process to store applications in non-volatile storage, allowing for quick loading into volatile storage when requested, and dynamically manages resource allocation based on usage criteria to optimize resource usage and response times.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If additional computing resources are allocated to handle load spikes, then response time is improved, but resource utilization efficiency deteriorates due to unused pre-allocated resources

Engineering Contradiction:
Improveresponse timeVSAvoidresource utilization efficiency
Core Design Contradiction:
SpeedVSLoss of energy

Solution Approach 1:

The system performs preliminary actions by identifying and pre-warming application instances before load spikes occur. The load predictor analyzes historical data and usage patterns to proactively instantiate applications in advance, so when demand increases, ready-to-use instances are immediately available, eliminating cold start delays without requiring permanent allocation of excess resources.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements dynamic resource allocation by continuously monitoring usage patterns and adjusting the number of instantiated applications in real-time. The load predictor dynamically determines when to scale up or down based on predicted demand, allowing the system to adapt flexibly to fluctuating loads rather than maintaining static resource allocation.

Inventive Principle:
Principle #15Dynamics

2Loss of energy

If computing resources are removed when usage decreases, then resource utilization is improved, but response time deteriorates during future load spikes due to re-allocation delays

Engineering Contradiction:
Improveresource utilizationVSAvoidresponse time
Core Design Contradiction:
Loss of energyVSSpeed

Solution Approach 1:

The system performs preliminary actions by maintaining a pool of pre-warmed application instances that can be quickly reactivated. Instead of completely shutting down applications during low usage, the system keeps minimal instances running or in a suspended state, ready for rapid restart when demand increases, thus avoiding full cold start penalties.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system efficiently discards and recovers computing resources by selectively terminating application instances during low usage periods while preserving the ability to quickly recover them. The load predictor identifies when resources can be safely released and orchestrates their recovery when needed, maximizing resource utilization while maintaining rapid response capability.

Inventive Principle:
Principle #34Discarding and recovering

3Ease of operation

If predefined allocations of computing resources are used, then resource management is simplified, but efficiency deteriorates due to inability to handle temporary load variations

Engineering Contradiction:
Improveresource management simplicityVSAvoidresource efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The system implements self-service by enabling applications to automatically manage their own lifecycle based on predicted demand. The load predictor and application manager work together to autonomously instantiate, suspend, and terminate application instances without manual intervention, simplifying resource management while dynamically optimizing efficiency through predictive scaling.

Inventive Principle:
Principle #25Self-service

4Speed

If more volatile storage is allocated for application loading, then response time is improved, but resource cost increases

Engineering Contradiction:
Improveapplication loading speedVSAvoidvolatile storage capacity
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The system performs preliminary actions by pre-loading application instances into volatile storage before they are needed. The load predictor identifies upcoming demand and proactively instantiates applications in memory, so when requests arrive, the system can serve from already-loaded instances rather than loading from disk, dramatically reducing response time without requiring excessive volatile storage capacity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system changes the state parameter of applications from persistent storage to in-memory state by pre-warming instances. This parameter change from disk-resident to memory-resident allows the system to serve applications from volatile storage only when needed, optimizing the balance between loading speed and storage capacity utilization.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9106483B2Systems and methods for serving applications in an application server environment
Publication Date: 2015.08.11 GOOGLE LLC
  • US9106483B2 patent drawing
  • US9106483B2 patent drawing
  • US9106483B2 patent drawing

AI summary

In a distributed application execution system having a plurality of application servers, each application server has volatile and nonvolatile storage as well as computational resources for executing applications as follows. A plurality of applications is stored in non-volatile storage. At least one such application is a primed application which is derived as follows. An unprimed application is executed and an initialization signal is optionally communicated to the unprimed application. A status signal is obtained from the unprimed application. Upon receipt of the status signal, the unprimed application is checkpointed to produce the primed application, and the primed application is stored. A request to execute the primed application is received from a client system. In response to the request, the primed application is loaded from non-volatile storage into volatile storage, and the primed application is executed. The primed application returns a result to the request to the client system.