Collocated Virtual Machine Instances in On-Demand Code Execution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Traditional on-demand code execution systems face inefficiencies and security concerns due to the need to pass intermediate results through external paths, leading to delayed task execution and exposure of sensitive information across multiple regions, which hampers the seamless execution of multiple tasks for a set of code.
Innovation Solution
The on-demand code execution system employs a function orchestrator to internally chain task execution by retaining status information, allowing virtual machine instances to directly push and pull results, and identifies collocated execution environments to enhance efficiency and security by executing tasks within close proximity.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If intermediate results are passed through external paths in traditional on-demand code execution systems, then task execution can be performed across multiple regions, but execution speed decreases and data security is compromised
Solution Approach 1:
The patent introduces a result storage mechanism that acts as an intermediary between task execution and result retrieval. Instead of passing results through external paths, results are stored in a centralized storage system that can be accessed by subsequent tasks, eliminating the need for direct result transmission and improving both security and speed.
Solution Approach 2:
The patent transitions from a linear result-passing model to a multi-dimensional architecture where results are stored in a centralized repository. This allows any task to access any result through the storage system, changing the communication dimension from direct peer-to-peer to indirect through-storage, thereby improving security and execution efficiency.
2Reliability
If virtual machine instances are distributed across multiple regions, then system availability is improved, but intermediate result handling becomes complex and inefficient
Solution Approach 1:
The patent extracts the result handling logic from the distributed virtual machine instances and centralizes it in a dedicated storage system. This separation allows VM instances to focus on execution while the storage system manages result persistence and retrieval, simplifying the overall system architecture and reducing complexity.
Solution Approach 2:
The centralized storage system serves multiple functions: storing intermediate results, managing task metadata, facilitating cross-region communication, and providing audit trails. This multi-functional component replaces multiple specialized components that would be needed in a distributed result-handling approach.
3Productivity
If traditional on-demand code execution systems are used, then basic task execution is supported, but chained task execution is delayed and inefficient
Solution Approach 1:
The patent implements preliminary actions by pre-storing intermediate results in the centralized storage system as they become available, rather than waiting for explicit retrieval requests. This allows subsequent tasks in a chain to immediately access results without waiting for result transmission, reducing execution delays and improving overall productivity.
Data Source
AI summary
Systems and methods are described for execution of multiple tasks associated with a set of code in an on-demand network code execution system. A user may provide a set of code that is associated with the multiple tasks. The system may generate a first virtual machine instance for execution of a first task. The system may determine that a second task is associated with the first task and may identify a location of the first virtual machine instance. The system may further identify a second virtual machine instance for execution of the second task based on the location of the first virtual machine instance. For example, the system may identify the first virtual machine instance from a plurality of pre-generated virtual machine instances and/or may generate the first virtual machine instance.


