Distributed Program Execution State Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Managing large-scale computing resources in data centers has become increasingly complex due to the scale and scope of operations, and existing virtualization technologies do not effectively handle the distribution and resilience of program execution across multiple computing nodes.

Innovation Solution

The described techniques involve decomposing program execution into multiple jobs that can be executed in parallel or distributed manner across distinct computing nodes, with the ability to temporarily terminate and resume execution jobs by persistently storing intermediate states, and using a Distributed Program Execution Service System Manager to manage these processes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If program execution is distributed across multiple computing nodes, then resource utilization and scalability are improved, but system complexity and difficulty of managing execution state increase

Engineering Contradiction:
Improveresource utilizationVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments program execution into multiple independent execution jobs that can be distributed across different computing nodes. Each execution job maintains its own state independently, allowing the system to manage complexity by breaking down the overall execution into manageable units that can be orchestrated by the system manager

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system manager acts as an intermediary between execution jobs and computing nodes. It maintains a registry of execution jobs, tracks their states, and coordinates their distribution across nodes. This intermediary layer abstracts the complexity of distributed state management from individual execution jobs

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If execution jobs can be temporarily terminated and resumed, then system flexibility and resource allocation are improved, but reliability of maintaining execution state is challenged

Engineering Contradiction:
Improvesystem flexibilityVSAvoidexecution state reliability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The system performs preliminary actions by persistently storing the state of execution jobs before termination. The system manager saves execution state to durable storage mechanisms, ensuring that when jobs are resumed, their state is reliably restored without loss, thus maintaining reliability while enabling flexibility

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system creates copies of execution job states and stores them in a registry maintained by the system manager. This copying mechanism ensures that the original execution state is preserved and can be restored if needed, maintaining reliability while allowing the original execution to be terminated or moved

Inventive Principle:
Principle #26Copying

3Loss of time

If intermediate execution states are persistently stored, then resumption capability is improved, but storage requirements and system overhead increase

Engineering Contradiction:
Improveresumption capabilityVSAvoidstorage requirements
Core Design Contradiction:
Loss of timeVSQuantity of substance

Solution Approach 1:

The patent applies local quality by storing execution state information locally within the system manager's registry rather than requiring centralized persistent storage for all jobs. Each execution job's state is stored only where it is actively managed, reducing overall storage requirements while maintaining resumption capability for active and recently terminated jobs

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS11263084B2Saving program execution state
Publication Date: 2022.03.01 AMAZON TECH INC
  • US11263084B2 patent drawing
  • US11263084B2 patent drawing
  • US11263084B2 patent drawing

AI summary

Techniques are described for managing distributed execution of programs. In at least some situations, the techniques include decomposing or otherwise separating the execution of a program into multiple distinct execution jobs that may each be executed on a distinct computing node, such as in a parallel manner with each execution job using a distinct subset of input data for the program. In addition, the techniques may include temporarily terminating and later resuming execution of at least some execution jobs, such as by persistently storing an intermediate state of the partial execution of an execution job, and later retrieving and using the stored intermediate state to resume execution of the execution job from the intermediate state. Furthermore, the techniques may be used in conjunction with a distributed program execution service that executes multiple programs on behalf of multiple customers or other users of the service.