Object Storage Data Manipulation via User Code Execution

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, while enabling dynamic data access control and customized 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 isolates the code execution from the core storage service, allowing flexible data manipulation while maintaining system stability and security. The execution environment acts as a buffer that handles the complexity of code interpretation and enforcement, preventing direct contamination of the storage service logic.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability 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 security risks increase

Engineering Contradiction:
Improveaccess controlVSAvoidsecurity risks
Core Design Contradiction:
Adaptability or versatilityVSObject-affected harmful factors

Solution Approach 1:

The patent applies preliminary anti-action by implementing security measures before code execution occurs. The system pre-validates user-submitted code against security policies, establishes isolated execution environments with restricted permissions, and pre-defines access control rules. These preventive measures are put in place before any code runs, blocking potential security threats in advance rather than reacting to them after execution.

Inventive Principle:
Principle #9Preliminary anti-action

Solution Approach 2:

The execution environment serves as a secure intermediary that mediates between user code and the storage service. It enforces security policies, validates code intentions, and controls the interaction between submitted code and stored data, thereby reducing security risks while maintaining access control flexibility.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If code execution environment is customized, then code execution flexibility is improved, but configuration complexity increases

Engineering Contradiction:
Improvecode execution flexibilityVSAvoidconfiguration complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system performs preliminary action by pre-configuring execution environments with common settings, security policies, and resource allocations. Standard execution contexts are prepared in advance with default configurations that can be selectively modified. This allows users to obtain flexible code execution with minimal configuration effort, as the heavy lifting of environment setup is already completed beforehand.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11416628B2User-specific data manipulation system for object storage service based on user-submitted code
Publication Date: 2022.08.16 AMAZON TECH INC
  • US11416628B2 patent drawing
  • US11416628B2 patent drawing
  • US11416628B2 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. Different data manipulation functions can be placed in different I/O paths depending on the request method or user access level. For example, a user having full access may be returned the unaltered version of the object, whereas a user having modified or reduced access may be returned a modified or redacted version of the object. In this manner, owners of the object collection are provided with greater control over how the object collection is accessed.