On-Demand Code Execution in Object Storage I/O Path

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data storage systems face challenges in enforcing data manipulation functions and ensuring data privacy, as they often rely on external enforcement and complex network communication requirements, which can lead to security issues and inefficiencies.

Innovation Solution

The integration of an on-demand code execution system with object storage services allows for the insertion of data processing pipelines into the I/O path, enabling serverless task executions that manipulate data using input and output handles, thereby simplifying code execution and enhancing security by restricting network communications.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If data manipulation functions are enforced externally with complex network communication, then data privacy can be ensured, but security issues and system complexity increase

Engineering Contradiction:
Improvedata privacy enforcementVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts the data manipulation function from external network communication and embeds it directly into the object storage service's I/O path. By taking out the complex network enforcement mechanism and integrating a simplified code execution environment within the storage service, the system maintains data privacy enforcement while reducing overall system complexity and security vulnerabilities associated with external network communication.

Inventive Principle:
Principle #2Taking out (Extraction)

2Productivity

If code execution is integrated into object storage I/O path, then data manipulation efficiency improves, but security risks may increase

Engineering Contradiction:
Improvedata manipulation efficiencyVSAvoidsecurity risks
Core Design Contradiction:
ProductivityVSObject-affected harmful factors

Solution Approach 1:

The patent introduces an intermediary code execution environment that acts as a mediator between the object storage service and user-provided code. This intermediary layer allows efficient data manipulation by executing code within the I/O path, while simultaneously mitigating security risks by controlling and isolating the code execution environment, preventing direct access to sensitive storage resources.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If user-specified code is executed during I/O operations, then data policy enforcement capability improves, but execution latency may increase

Engineering Contradiction:
Improvedata policy enforcement capabilityVSAvoidexecution latency
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by preparing and validating user-specified code in advance before it is executed during I/O operations. The system pre-compiles, pre-validates, and pre-configures the code execution environment, so that when data I/O operations occur, the code can be executed immediately with minimal latency. This maintains high adaptability for data policy enforcement while reducing execution time.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11250007B1On-demand execution of object combination code in output path of object storage service
Publication Date: 2022.02.15 AMAZON TECH INC
  • US11250007B1 patent drawing
  • US11250007B1 patent drawing
  • US11250007B1 patent drawing

AI summary

Systems and methods are described for modifying input and output (I/O) to an object storage service by implementing one or more owner-specified functions to I/O requests. A function can implement a data manipulation, such as filtering out sensitive data before reading or writing the data. The functions can be applied prior to implementing a request method (e.g., GET or PUT) specified within the I/O request, such that the data to which the method is applied my not match the object specified within the request. For example, a user may request to obtain (e.g., GET) a data set. The data set may be passed to a function that filters sensitive data to the data set, and the GET request method may then be applied to the output of the function. In this manner, owners of objects on an object storage service are provided with greater control of objects stored or retrieved from the service.