On-Demand Code Execution System with Rollback and Deduplication

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In on-demand code execution environments, ensuring that tasks are executed only a desired number of times is challenging due to the rapid and distributed nature, leading to potential multiple executions and increased computing resource allocation, especially when in-code verifications are used to check execution states, causing delays and inefficiencies.

Innovation Solution

Implementing an on-demand code execution environment that maintains execution records and uses execution identifiers to ensure tasks are executed only as intended, with rollback mechanisms for erroneous executions, reducing the need for unnecessary resource allocation and improving efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If in-code verifications are used to check execution states, then task execution accuracy is improved, but execution delay increases and efficiency decreases

Engineering Contradiction:
Improveexecution state verification accuracyVSAvoidexecution delay
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent introduces an execution record data store as an intermediary component that maintains authoritative execution records externally. Instead of using in-code verifications that pause execution to check states, the system uses execution identifiers to query this separate data store, which returns verification results without blocking the execution flow. This mediator approach provides accurate execution state verification while minimizing execution delays.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Speed

If distributed execution is implemented for rapid processing, then processing speed is improved, but execution control reliability deteriorates

Engineering Contradiction:
Improveprocessing speedVSAvoidexecution control reliability
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The patent implements a feedback mechanism where execution records are maintained in a centralized data store that tracks the execution state of each task. When tasks are distributed across multiple computing devices for rapid processing, each execution attempt is recorded and verified against this centralized feedback source. The system queries the execution record data store to determine whether a task has already been executed, ensuring reliable execution control even in a distributed environment where tasks may be replicated across multiple nodes.

Inventive Principle:
Principle #23Feedback

3Reliability

If multiple execution attempts are made to ensure task completion, then execution reliability is improved, but resource allocation increases

Engineering Contradiction:
Improveexecution reliabilityVSAvoidcomputing resource usage
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent applies preliminary action by maintaining execution records in advance in a centralized data store before actual task execution occurs. When a task is submitted for execution, the system first queries the execution record data store to check if the task has already been executed. This preliminary check prevents redundant resource allocation for tasks that have already completed, while still allowing multiple execution attempts when necessary. The execution identifier serves as a preliminary identifier that enables this advance verification, ensuring that computing resources are allocated only when necessary.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10884787B1Execution guarantees in an on-demand network code execution system
Publication Date: 2021.01.05 AMAZON TECH INC
  • US10884787B1 patent drawing
  • US10884787B1 patent drawing
  • US10884787B1 patent drawing

AI summary

Systems and methods are described for implementing execution guarantees in an on-demand code execution system or other distributed code execution environment, such that the on-demand code execution system attempts to execute code only a desired number of times. The on-demand code execution system can utilize execution identifiers to distinguish between new and duplicative requests, and can decline to allocate computing resources for duplicative requests. The on-demand code execution system can further detect errors during execution, and rollback the execution to undo the execution's effects. The on-demand code execution system can then restart execution until the code has been execute the desired number of times.