On-Demand Indexing 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 manipulations within object storage services without modifying the service interface, leading to complexity and security concerns, especially when handling personally identifying information and requiring users to manage network communications for data manipulations.

Innovation Solution

The integration of on-demand code execution systems with object storage services allows for the configuration of input and output streams, enabling serverless task executions to perform data manipulations within the I/O path without requiring network communication, thus simplifying code creation and enhancing security by using restrictive network access models.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If data manipulations are enforced within object storage services by modifying the service interface, then data processing capabilities are improved, but system complexity and security risks increase

Engineering Contradiction:
Improvedata processing capabilityVSAvoidservice interface complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces an on-demand code execution system as an intermediary between the object storage service and data manipulation requirements. This mediator executes user-submitted code in isolated environments without requiring modifications to the core storage service interface, thereby enabling flexible data processing while maintaining service simplicity and security boundaries

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If users manage network communications for data manipulations, then data processing flexibility is improved, but security concerns increase

Engineering Contradiction:
Improvedata manipulation flexibilityVSAvoidsecurity risks
Core Design Contradiction:
Adaptability or versatilityVSObject-affected harmful factors

Solution Approach 1:

The patent creates an inert execution environment by implementing restrictive network access models and isolated code execution contexts. User-submitted code runs in sandboxed environments with controlled network permissions, allowing flexible data manipulation while preventing unauthorized external communications and security threats

Inventive Principle:
Principle #39Inert atmosphere (Inert environment)

3Productivity

If code execution systems are integrated with object storage services, then data processing efficiency is improved, but system complexity increases

Engineering Contradiction:
Improvedata processing efficiencyVSAvoidsystem integration complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the system into distinct functional components: the object storage service handles data operations, while the on-demand code execution system handles processing logic. This segmentation allows each component to operate independently with well-defined interfaces, improving data processing efficiency while managing complexity through clear separation of concerns

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10996961B2On-demand indexing of data in input path of object storage service
Publication Date: 2021.05.04 AMAZON TECH INC
  • US10996961B2 patent drawing
  • US10996961B2 patent drawing
  • US10996961B2 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 may 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.