Object Storage Code Execution Environment Customization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing object storage services lack the ability to dynamically control data access and enforce data manipulations within the I/O path without modifying the service interface, leading to inefficiencies and security concerns, as well as limitations in integrating serverless code execution and customizing execution environments.

Innovation Solution

The integration of an on-demand code execution system with object storage services allows for the insertion of user-submitted code into the I/O path, using input and output handles to simplify data manipulation and enhance security, enabling dynamic data access control and customization of execution environments.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If user-submitted code is executed within the I/O path of object storage service, then data manipulation capability and access control are improved, but system complexity and security risks increase

Engineering Contradiction:
Improvedata manipulation capabilityVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces a code execution environment as an intermediary layer between the object storage service and user-submitted code. This mediator provides necessary APIs and functions for data manipulation while isolating the execution of user code from the core storage service, thereby enabling enhanced data manipulation capability without proportionally increasing system complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system is segmented into distinct components: the object storage service, the code execution environment, and the user-submitted code. This segmentation allows each component to be developed, maintained, and secured independently, managing overall system complexity while enabling versatile data manipulation through the coordinated interaction of these modular segments.

Inventive Principle:
Principle #1Segmentation

2Reliability

If code execution environment is customized with owner-specified rules, then data access control and security are improved, but configuration complexity increases

Engineering Contradiction:
Improvedata access controlVSAvoidconfiguration complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The code execution environment is designed to automatically apply owner-specified rules and policies without requiring manual configuration of complex security parameters. The system self-configures the execution environment based on predefined owner preferences and data policies, thereby improving data access control while minimizing configuration complexity for users.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

Owners pre-define their data policies and execution environment preferences in advance. These preliminary configurations are then automatically applied when code is executed against their data, eliminating the need for complex runtime configuration and simplifying the user experience while maintaining strong access control.

Inventive Principle:
Principle #10Preliminary action

3Ease of operation

If input and output handles are used for data manipulation, then ease of operation is improved, but potential data loss or corruption risks increase

Engineering Contradiction:
Improvedata manipulation simplicityVSAvoiddata integrity
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The code execution environment implements feedback mechanisms that monitor data flow through input and output handles. The system verifies data integrity, detects potential corruption, and provides feedback to the executing code, allowing simple handle-based operations while maintaining data reliability through automated monitoring and error detection.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11550944B2Code execution environment customization system for object storage service
Publication Date: 2023.01.10 AMAZON TECH INC
  • US11550944B2 patent drawing
  • US11550944B2 patent drawing
  • US11550944B2 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. Such functions can include data access control functions, data manipulation functions, and the like. The owner of an object collection maintained by the object storage service can specify code execution environment rules that can give privileges to the execution of such functions such as by allowing the functions to access external services or the requesting user's private resources. In this manner, owners of the object collection are provided with greater control over how the object collection is accessed.