Storage Node Accelerator Shuffle Offload

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data shuffle operations in distributed data processing frameworks are CPU-intensive and lead to performance bottlenecks due to heavy I/O operations and network transfers, causing stress on storage devices and networks, especially in large-data applications.

Innovation Solution

Offloading portions of shuffle operations to a storage node accelerator and utilizing peer-to-peer (P2P) connections and direct memory access (DMA/RDMA) operations to reduce processing workload and I/O operations between the host and storage nodes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If shuffle operations are performed using traditional CPU-intensive methods, then data processing can be completed, but system performance is bottlenecked and CPU load increases significantly

Engineering Contradiction:
Improveshuffle operation throughputVSAvoidCPU load
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent extracts shuffle operations from the host CPU and relocates them to storage node accelerators. The host initiates shuffle operations by sending commands to storage nodes, which then execute partitioning, sorting, merging, and data movement operations locally using integrated accelerators, eliminating the need for the host CPU to process these intensive operations.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces storage node accelerators as intermediary components between the host and storage devices. These accelerators handle the computationally intensive shuffle operations, acting as a mediator that offloads work from the host CPU while maintaining coordination through standardized interfaces and protocols.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If data is transferred frequently between host and storage nodes for shuffle operations, then processing can occur, but network transfers increase and performance bottlenecks occur

Engineering Contradiction:
Improvedata processing speedVSAvoidnetwork transfer overhead
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent segments the shuffle operation into distinct phases: host-initiated command generation, storage node-local data processing, and result consolidation. By dividing the operation and allowing storage nodes to process data locally without constant host intervention, network transfers are minimized while maintaining processing throughput.

Inventive Principle:
Principle #1Segmentation

3Device complexity

If shuffle operations are centralized on the host, then coordination is simplified, but storage devices experience increased stress and reduced scalability

Engineering Contradiction:
Improvecoordination overheadVSAvoidstorage device stress
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The patent implements local quality by equipping each storage node with its own accelerator capable of performing shuffle operations independently. This distributes the computational burden across multiple locations rather than concentrating it on the host, reducing stress on individual storage devices while maintaining system-wide coordination through standardized protocols.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS11567971B2Systems, methods, and devices for storage shuffle acceleration
Publication Date: 2023.01.31 SAMSUNG ELECTRONICS CO LTD
  • US11567971B2 patent drawing
  • US11567971B2 patent drawing
  • US11567971B2 patent drawing

AI summary

A method of processing data in a system having a host and a storage node may include performing a shuffle operation on data stored at the storage node, wherein the shuffle operation may include performing a shuffle write operation, and performing a shuffle read operation, wherein at least a portion of the shuffle operation is performed by an accelerator at the storage node. A method for partitioning data may include sampling, at a device, data from one or more partitions based on a number of samples, transferring the sampled data from the device to a host, determining, at the host, one or more splitters based on the sampled data, communicating the one or more splitters from the host to the device, and partitioning, at the device, data for the one or more partitions based on the one or more splitters.