Network Interface Controller Offloading for Distributed Storage Redundancy

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Distributed data storage systems face inefficiencies in CPU offloading during redundancy calculations and data transfers, which can lead to high hardware complexity and communication overhead, especially in redundant array of independent disks (RAID) systems.

Innovation Solution

The implementation of network interface controllers (NICs) with computation logic and cache memory to offload CPU tasks, performing redundancy calculations and data transfers, thereby reducing the burden on CPUs and eliminating the need for a RAID controller.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If CPU performs redundancy calculations and data transfers in distributed storage systems, then calculation accuracy and data integrity are ensured, but CPU utilization increases and system efficiency decreases

Engineering Contradiction:
Improvedata integrityVSAvoidsystem efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts the redundancy calculation function from the CPU by introducing a dedicated NIC with computation logic. The NIC independently performs redundancy calculations and data transfers, removing this workload from the CPU while ensuring data integrity through dedicated hardware implementation.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The NIC acts as an intermediary between the CPU and storage devices, handling redundancy calculations and data transfers. This intermediary component relieves the CPU of these tasks while maintaining system reliability through dedicated computation logic in the NIC.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If dedicated hardware is added for redundancy calculations, then calculation speed and efficiency improve, but hardware complexity increases

Engineering Contradiction:
Improvecalculation speedVSAvoidhardware complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The NIC is designed with multi-functionality, serving both as a network interface for data transfers and as a computation unit for redundancy calculations. This universal component improves calculation speed without requiring separate dedicated hardware, thereby limiting the increase in hardware complexity.

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

Solution Approach 2:

The patent merges the redundancy calculation function with the existing NIC infrastructure. By combining computation logic with the network interface, the system achieves faster redundancy calculations while avoiding the hardware complexity increase that would result from completely separate dedicated hardware.

Inventive Principle:
Principle #5Merging (Combining)

3Adaptability or versatility

If more computation logic is embedded in NICs, then CPU burden is reduced and system scalability improves, but NIC complexity and manufacturing cost increase

Engineering Contradiction:
Improvesystem scalabilityVSAvoidNIC complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The NIC is pre-configured with computation logic that enables it to perform redundancy calculations independently before data is fully processed by the CPU. This preliminary action by the NIC reduces the CPU burden and improves system scalability, while the computation logic is integrated in a way that limits NIC complexity increases.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9459957B2Offloading node CPU in distributed redundant storage systems
Publication Date: 2016.10.04 MELLANOX TECHNOLOGIES LTD(IL)
  • US9459957B2 patent drawing
  • US9459957B2 patent drawing
  • US9459957B2 patent drawing

AI summary

A network interface includes a host interface for communicating with a node, and circuitry which is configured to communicate with one or more other nodes over a communication network so as to carry out, jointly with one or more other nodes, a redundant storage operation that includes a redundancy calculation, including performing the redundancy calculation on behalf of the node.