Pre-initialized Virtual Machine Instance Pool for Low Latency Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Developers face challenges in efficiently managing virtual machine instances, including high latency in instance startup, over- or under-utilization of resources, and difficulties in predicting traffic changes, leading to performance issues and increased costs when using cloud-based computing resources.

Innovation Solution

A virtual compute system maintains a pool of pre-initialized virtual machine instances with loaded software components, allowing for rapid deployment and management of instances to reduce latency and optimize resource allocation based on user requests, and dynamically adjusts resources to match demand.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If virtual machine instances are initialized on-demand when users request them, then resource utilization is optimized and costs are reduced, but startup latency increases significantly

Engineering Contradiction:
Improveinstance startup latencyVSAvoidcomputing resource utilization
Core Design Contradiction:
Loss of timeVSLoss of energy

Solution Approach 1:

The system pre-initializes virtual machine instances in a warming pool before they are needed, loading essential software components and configurations in advance. This preliminary action reduces startup latency when instances are requested, while the system intelligently manages the pool size to optimize resource utilization and avoid unnecessary energy waste from maintaining excessive pre-initialized instances.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If more virtual machine instances are pre-initialized to reduce latency, then startup time decreases, but resource allocation efficiency deteriorates due to over-provisioning

Engineering Contradiction:
Improveinstance deployment speedVSAvoidcomputing resources allocated
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The system dynamically adjusts the size and state of the warming pool based on historical traffic patterns, current system load, and predicted demand. This dynamic management allows the system to maintain optimal deployment speed by having ready instances when needed, while preventing resource waste by scaling down the pre-initialized pool during low-demand periods.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes key parameters such as the number of pre-initialized instances, the depth of software component loading, and instance refresh rates based on system conditions and user requirements. This allows flexible optimization of both deployment speed and resource allocation efficiency under different operating scenarios.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If security policies are enforced during code execution, then system security is improved, but execution performance may be reduced due to additional verification overhead

Engineering Contradiction:
Improvesystem securityVSAvoidcode execution performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system performs security verification, policy validation, and compliance checks in advance during the instance initialization phase in the warming pool. By completing these security-related actions beforehand, the system ensures strong security enforcement while minimizing the performance impact during actual code execution, as the security overhead is amortized across the pre-initialization period.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP3254434B1Security protocols for low latency execution of program code
Publication Date: 2019.10.09 AMAZON TECH INC
  • EP3254434B1 patent drawingFigure 1
  • EP3254434B1 patent drawingFigure 2
  • EP3254434B1 patent drawingFigure 3

AI summary

A system for providing security mechanisms for secure execution of program code is described. The system may be configured to maintain a plurality of virtual machine instances. The system may be further configured to receive a request to execute a program code and allocate computing resources for executing the program code on one of the virtual machine instances. One mechanism involves executing program code according to a user-specified security policy. Another mechanism involves executing program code that may be configured to communicate or interface with an auxiliary service. Another mechanism involves splitting and executing program code in a plurality of portions, where some portions of the program code are executed in association with a first level of trust and some portions of the program code are executed with different levels of trust.