Task Pool Pausing for Compute Instance Scaling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Managing complex compute services that span multiple containers is inefficient, particularly in initializing tasks, which requires significant time and resources, and customers struggle to scale workloads quickly to meet demand while conserving resources.

Innovation Solution

Implementing a task pool within a container management service that allows for pausing and quickly resuming tasks, where a snapshot of task resources is stored, enabling efficient resource utilization and rapid scaling in response to demand changes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If tasks are initialized from scratch each time they are executed, then resource allocation is simple and straightforward, but the initialization time and resource consumption are significant

Engineering Contradiction:
Improveinitialization timeVSAvoidtask management complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The system performs preliminary actions by pausing tasks in a suspended state after execution rather than completely terminating them. This allows the task state, including container configurations and resource allocations, to be preserved in memory. When the same task needs to be executed again, the system can quickly resume the suspended task instance instead of initializing a new one from scratch, dramatically reducing initialization time while maintaining manageable complexity through automated state management.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If compute instances are kept running to reduce initialization time, then task execution can start quickly, but compute resources are consumed continuously even when not needed

Engineering Contradiction:
Improvetask execution speedVSAvoidcompute resource consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The system implements dynamic resource allocation by transitioning compute instances between active and suspended states based on workload demand. When a task completes, its compute instance is suspended rather than terminated, preserving the task state and container configurations in memory. This dynamic state management allows the system to quickly react to new task requests by resuming suspended instances, achieving fast task execution startup without the continuous resource consumption of permanently running instances. Resources are freed when instances are suspended, and quickly restored when needed.

Inventive Principle:
Principle #15Dynamics

3Adaptability or versatility

If multiple task snapshots are maintained in the task pool, then rapid scaling and task resumption are enabled, but memory consumption increases

Engineering Contradiction:
Improveworkload scaling capabilityVSAvoidmemory usage
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The system changes the state parameter of task instances from completely terminated to suspended, maintaining them in a middle state where task state information is preserved in memory but compute resources are released. This parameter change enables the task pool to accumulate suspended task instances that can be quickly resumed for rapid workload scaling, while consuming significantly less memory than if all task state information were fully loaded and active. The suspended state optimizes the balance between adaptability and memory consumption.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11669365B1Task pool for managed compute instances
Publication Date: 2023.06.06 AMAZON TECH INC
  • US11669365B1 patent drawing
  • US11669365B1 patent drawing
  • US11669365B1 patent drawing

AI summary

A task pool may be created and maintained, in association with a container management service, which stores a snapshot of a one or more tasks, the performance of which is suspended or paused. Tasks may be defined as applications executable in one or more software containers instantiated on a virtual machine or compute instance, where the snapshot of a task may include an image of the one or more containers associated with the task container and state information of the one or more containers. A task may be initially provisioned in a paused state or paused after executing at least a portion of the task. Paused tasks in the task pool may be readily restarted or resumed by loading the snapshot onto a compute instance. The task pool may manage provisioning new tasks and pause tasks based on changes in demand.