Stateful Virtual Compute System Latency Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Developers face challenges in efficiently managing virtual machine instances for cloud computing, including high latency, over- or under-utilization, and the need to predict traffic changes, which can lead to increased costs and performance issues.

Innovation Solution

A virtual compute system that maintains a pool of pre-initialized virtual machine instances, allowing multiple invocations to share resources, and uses a state manager to monitor and adjust resource allocation, reducing latency and improving scalability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If virtual machine instances are initialized on-demand, then resource utilization is improved, but latency increases

Engineering Contradiction:
Improveresource utilizationVSAvoidlatency
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The system pre-initializes virtual machine instances in a warming pool before they are needed. Instances are started, configured with operating systems and applications, and made ready in advance so that when a code execution request arrives, the instance can be immediately assigned and started, eliminating initialization latency.

Inventive Principle:
Principle #10Preliminary action

2Loss of time

If more virtual machine instances are maintained, then latency is reduced, but cost increases

Engineering Contradiction:
ImprovelatencyVSAvoidcost
Core Design Contradiction:
Loss of timeVSQuantity of substance

Solution Approach 1:

The system dynamically manages the warming pool of virtual machine instances based on demand. The pool size and composition are adjusted automatically according to traffic patterns and execution requests, maintaining enough pre-initialized instances to meet latency requirements while releasing unused instances to control costs.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the state parameter of virtual machine instances from 'initialized' to 'ready' in the warming pool, allowing them to be immediately deployed. This parameter change enables instances to skip the initialization phase when executed, reducing latency without requiring permanent maintenance of all possible instance configurations.

Inventive Principle:
Principle #35Parameter changes

3Loss of time

If virtual machine instances are pre-initialized, then latency is reduced, but device complexity increases

Engineering Contradiction:
ImprovelatencyVSAvoidsystem complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The system segments virtual machine instances into different pools: a warming pool for pre-initialized instances ready for immediate deployment, and an on-demand pool for instances initialized when requested. This segmentation allows the system to manage complexity by organizing instances into distinct functional groups with different lifecycle management strategies.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The warming pool acts as an intermediary layer between the requestor and the underlying virtualization infrastructure. It buffers and pre-prepares instances, absorbing the complexity of initialization and configuration management, while presenting a simple interface of ready-to-deploy instances to the execution system.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11360793B2Stateful virtual compute system
Publication Date: 2022.06.14 AMAZON TECH INC
  • US11360793B2 patent drawing
  • US11360793B2 patent drawing
  • US11360793B2 patent drawing

AI summary

A system for providing a stateful virtual compute system is provided. 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 select a virtual machine instance to execute the program code on the selected virtual machine instance. The system may further associate the selected virtual machine instance with shared resources and allow program codes executed in the selected virtual machine instance to access the shared resources.