Executable Objects in Distributed Storage for In-Place Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current distributed storage systems face high costs and resource inefficiencies due to the need to transfer data from storage nodes to compute nodes for processing, utilizing extensive network and compute resources, and often result in idle compute and memory resources on object storage nodes being underutilized.

Innovation Solution

Implementing executable objects within object storage systems that can run on storage nodes, allowing data processing to occur in-place, reducing the need for data transfer by utilizing idle resources and optimizing network usage through in-place data-centric pipelining.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If data is transferred from storage nodes to compute nodes for processing, then data processing capability is improved, but network resources and transfer time are consumed

Engineering Contradiction:
Improvedata processing capabilityVSAvoiddata transfer time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent merges storage and compute functions by running executable objects directly on storage nodes. This eliminates the need to separate data transfer and processing operations, allowing processing to occur in-place where data resides, thereby eliminating transfer time while maintaining processing capability.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

Instead of transferring data to compute nodes for processing (traditional approach), the patent inverts the approach by transferring executable objects to storage nodes and running them there. This reverses the conventional data flow pattern and eliminates the need for large data transfers.

Inventive Principle:
Principle #13The other way round (Inversion)

2Productivity

If data is transferred from storage nodes to compute nodes for processing, then data processing capability is improved, but compute and memory resources are consumed

Engineering Contradiction:
Improvedata processing capabilityVSAvoidcompute and memory resources
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

Storage nodes perform processing functions using their own idle compute and memory resources. Rather than requiring dedicated compute nodes, the storage nodes serve themselves by executing processing tasks locally, thereby utilizing previously wasted resources without consuming additional external compute resources.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

Storage nodes are designed to perform multiple functions: data storage and data processing. By making storage nodes universal and capable of executing executable objects, the system eliminates the need for separate dedicated compute nodes, reducing overall resource consumption while maintaining processing capability.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Productivity

If executable objects are stored and run on storage nodes, then resource utilization is improved, but device complexity increases

Engineering Contradiction:
Improveresource utilizationVSAvoidstorage node functionality
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Executable objects are stored on storage nodes in advance, ready to be executed when needed. This preliminary preparation allows the storage nodes to quickly launch processing tasks without complex runtime configuration, simplifying the overall system operation while enabling rich functionality.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system dynamically manages executable objects on storage nodes, allowing flexible allocation and execution based on demand. This dynamic approach enables resource-intensive processing capabilities while maintaining operational simplicity through automated resource management and scheduling mechanisms.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS20230105531A1Executable Objects in a Distributed Storage System
Publication Date: 2023.04.06 NETAPP INC
  • US20230105531A1 patent drawing
  • US20230105531A1 patent drawing
  • US20230105531A1 patent drawing

AI summary

Systems, methods, and machine-readable media are disclosed for running an executable object on an object storage system. An executable object including executable code is stored on a first storage node of an object storage system. The first storage node receives a request to run the executable object. The first storage node identifies the physical location of one or more data objects of interest to be processed by the executable object. The first storage node runs the executable object to process the identified one or more data objects. The first storage node receives a request from a second storage node of the object storage system for the executable object in response to one or more data objects of interest being located at the second storage node. The first storage node sends a copy of the executable object to the second storage node.