On-Demand Code Execution Manager for Distributed Task Monitoring

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In on-demand code execution environments, monitoring and debugging of task executions across multiple virtual machines and external services are challenging due to their distributed and asynchronous nature, making it difficult to track and diagnose issues such as infinite loops or errors in complex functionality.

Innovation Solution

The implementation of an on-demand code execution environment that passively and actively monitors task executions, generates task profiles, and predicts subsequent calls by pre-loading necessary code and optimizing virtual machine selection based on communication paths, enabling efficient execution and error diagnosis.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If on-demand code execution is implemented in a distributed virtual machine environment, then code execution flexibility and resource utilization are improved, but monitoring and debugging complexity increases

Engineering Contradiction:
Improvecode execution flexibilityVSAvoidmonitoring and debugging complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces an on-demand code execution environment manager as an intermediary component that centralizes the monitoring and debugging functions. This manager intercepts service calls, tracks task executions, and provides unified debugging capabilities across the distributed virtual machine environment, thereby reducing the complexity of monitoring and debugging while preserving execution flexibility

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system implements feedback mechanisms where the environment manager continuously monitors task executions, collects performance data, and provides real-time feedback about task status, errors, and interactions. This feedback loop enables effective monitoring and debugging in the distributed environment without sacrificing code execution flexibility

Inventive Principle:
Principle #23Feedback

2Measurement precision

If passive and active monitoring of task executions is implemented, then error diagnosis capability is improved, but system overhead increases

Engineering Contradiction:
Improveerror diagnosis capabilityVSAvoidsystem overhead
Core Design Contradiction:
Measurement precisionVSLoss of energy

Solution Approach 1:

The patent implements a hybrid monitoring approach where the system performs active monitoring (modifying service calls to track executions) only for specific tasks that require detailed monitoring, while using passive monitoring for other tasks. This partial application of monitoring reduces system overhead while maintaining strong error diagnosis capability for critical tasks

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The environment manager is configured in advance with knowledge of which tasks require monitoring and what types of monitoring are needed. By pre-configuring monitoring parameters and thresholds, the system avoids the overhead of dynamic monitoring decisions while maintaining precise error diagnosis capability

Inventive Principle:
Principle #10Preliminary action

3Loss of time

If subsequent service calls are predicted and pre-loaded, then execution latency is reduced, but memory usage increases

Engineering Contradiction:
Improveexecution latencyVSAvoidmemory usage
Core Design Contradiction:
Loss of timeVSQuantity of substance

Solution Approach 1:

The patent uses historical execution data and task interaction patterns to predict which service calls are likely to occur next. By pre-loading only these predicted subsequent calls into memory, the system reduces execution latency for anticipated tasks while avoiding the memory overhead of pre-loading all possible service calls

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system dynamically adjusts memory allocation for pre-loaded service calls based on changing execution patterns and workload characteristics. By modifying parameters such as prediction confidence thresholds and memory allocation limits, the system optimizes the balance between execution latency and memory usage

Inventive Principle:
Principle #35Parameter changes

4Adaptability or versatility

If virtual machine instances are pre-configured with multiple operating systems and applications, then functionality versatility is improved, but device complexity increases

Engineering Contradiction:
Improvefunctionality versatilityVSAvoidvirtual machine configuration complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent creates universal virtual machine instance templates that can be dynamically configured to provide multiple operating systems and applications. These templates serve as multi-functional building blocks that can be adapted to different task requirements without increasing the complexity of individual VM configurations

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The system segments the virtual machine configuration into modular components (operating systems, applications, libraries) that can be independently managed and combined. This segmentation allows the environment manager to assemble appropriate configurations on-demand, providing functionality versatility while keeping individual configuration units simple and manageable

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10365985B2Predictive management of on-demand code execution
Publication Date: 2019.07.30 AMAZON TECH INC
  • US10365985B2 patent drawing
  • US10365985B2 patent drawing
  • US10365985B2 patent drawing

AI summary

Systems and methods are described for monitoring code execution within an on-demand code execution environment or other distributed code execution environment. The distributed, asynchronous nature of such environment can make determining the interactions between code executions difficult relative to traditional, non-distributed systems. The present disclosure enables the interrelations between code executions to be monitored by injecting monitoring information into the calls between those code executions. The monitoring information may be propagated through calls, such that a “path” or “trace” of code executions and calls can be determined. Data generated based on the monitoring information can be used to generate a profile for a set of code, so that a developer or other user may easily debug or optimize execution of the code.