Client Data Compute Kernels in Cloud Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current cloud-based data storage systems limit client applications' ability to optimize data access requests due to overgeneralized service interfaces, forcing clients to copy large datasets and maintain unnecessary resources, leading to inefficiencies and inflexibility.

Innovation Solution

Implementing client data compute kernels within the service provider network, allowing clients to deploy custom data access systems that can perform computations closer to the data, optimizing data access and manipulation processes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If a pure client-server model is used with standardized service interfaces, then the storage service can be broadly accessible and easy to operate, but client applications cannot optimize data access requests and must copy large datasets over the network

Engineering Contradiction:
Improveservice interface accessibilityVSAvoiddata access efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The system segments the storage service functionality by allowing multiple independent compute kernels to run concurrently on the same storage service node. Each compute kernel can be optimized for specific client application needs while the standardized service interface maintains broad accessibility. This segmentation enables both ease of operation through standard interfaces and productivity through optimized kernels.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically allocates and manages multiple compute kernels on storage service nodes based on client application requirements. Compute kernels can be started, stopped, and configured dynamically without affecting the underlying storage service infrastructure, enabling optimization for specific data access patterns while maintaining operational simplicity.

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If client applications copy large datasets over the network to perform sophisticated analysis, then they can use specialized algorithms, but network bandwidth is consumed and data transfer time increases

Engineering Contradiction:
Improvedata analysis capabilityVSAvoidnetwork bandwidth consumption
Core Design Contradiction:
Adaptability or versatilityVSLoss of energy

Solution Approach 1:

The system adds a new dimension to data processing by enabling compute kernels to execute sophisticated algorithms directly on the storage service node where data resides. This eliminates the need to move data across the network dimension, allowing specialized data analysis while consuming minimal network bandwidth. The compute kernel creates a local processing environment that maintains versatility without the energy cost of data transfer.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

3Adaptability or versatility

If the storage service engine uses overgeneralized algorithms for data access, then it can handle diverse requests, but it cannot take advantage of client-specific optimizations

Engineering Contradiction:
Improvedata access request handlingVSAvoidrequest processing efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The system segments the data access handling into two layers: a standardized service interface layer that maintains versatility for diverse requests, and multiple specialized compute kernel instances that provide client-specific optimizations. Each compute kernel can be tailored to specific client needs while the interface layer handles request diversity, resolving the contradiction between adaptability and efficiency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The compute kernel acts as an intermediary between the standardized service interface and the storage backend. It receives general requests through the service interface and applies client-specific optimization algorithms before accessing the storage system, thereby maintaining versatility at the interface level while achieving efficiency through specialized processing in the intermediate layer.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Productivity

If clients maintain sufficient physical resources on the client site, then they can perform client-specific data analysis tasks, but system complexity and resource costs increase

Engineering Contradiction:
Improvedata analysis performanceVSAvoidclient system configuration
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system enables self-service by allowing compute kernels to run directly on the storage service node infrastructure. Clients can perform sophisticated data analysis tasks using the cloud provider's existing hardware resources without needing to maintain separate physical resources at client sites. This eliminates the need for complex client system configurations while maintaining high data analysis performance.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system merges the data storage function and data processing function into a single integrated environment on the storage service node. By combining these functions that were traditionally separated between client and server, the system eliminates the need for clients to maintain separate physical resources, reducing system complexity while preserving data analysis performance.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS10362110B1Deployment of client data compute kernels in cloud
Publication Date: 2019.07.23 AMAZON TECH INC
  • US10362110B1 patent drawing
  • US10362110B1 patent drawing
  • US10362110B1 patent drawing

AI summary

A data storage service includes a client data compute kernel manager that receives and registers a client data compute kernel in a client kernel repository. The client data compute kernel may be a custom data compute kernel that is received from a client. The data storage service includes a client request handler that receives data access requests to a client data store. The client request handler may determine that a data access request is associated with the client data compute kernel. The client request handler may then deploy the client data compute kernel to one or more selected storage servers, and then forward the data access request to the client data compute kernel. A storage server may execute a storage service engine of the data storage service in one execution container on the storage server and the client data compute kernel on a second execution container on the storage server.