Storage System Resource Allocation via Compute Core Sharding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Load balancing in multiple-node storage systems leads to increased network load and latency for client computers due to rerouting of I/O requests, which is inefficient and affects response times.

Innovation Solution

Implementing a method that logically shards compute workload into units called shards, dynamically assigning sharded and non-sharded tasks to compute cores, allowing for shard relocation to balance workload and minimize latency, while maintaining minimal disruption to ongoing operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If I/O requests are rerouted to the assigned compute node based on address ranges, then load balancing is achieved, but network load increases and latency increases

Engineering Contradiction:
Improveload balancingVSAvoidlatency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs preliminary action by having the receiving compute node check whether it is the assigned compute node for the requested address range before processing the I/O request. This upfront verification prevents unnecessary rerouting operations and reduces latency while maintaining load balancing effectiveness.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements feedback by using the response path to provide information about assignment ownership. When a compute node receives a response from storage, it forwards the response to the original requesting entity, creating a feedback loop that enables the system to learn and optimize routing decisions while maintaining load balance.

Inventive Principle:
Principle #23Feedback

2Productivity

If I/O requests are rerouted to maintain load balance, then compute node load is balanced, but network load increases

Engineering Contradiction:
Improveload balancingVSAvoidnetwork load
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The receiving compute node performs a preliminary check to determine if it is the assigned compute node for the requested address range before proceeding with request handling. This preliminary action eliminates unnecessary rerouting and reduces network load while preserving load balancing benefits.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system extracts and eliminates the harmful rerouting operation by implementing direct handling at the receiving node when possible. By taking out the unnecessary rerouting step, the system reduces network traffic and energy consumption while maintaining effective load distribution.

Inventive Principle:
Principle #2Taking out (Extraction)

3Loss of time

If responses are sent via the receiving compute node, then client response time is improved, but more rerouting operations are required

Engineering Contradiction:
Improveclient response timeVSAvoidrerouting operations
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The system performs preliminary verification at the receiving compute node to determine if it is the assigned node for the requested address range. This upfront check enables the receiving node to handle the request directly without rerouting, reducing both client response time and rerouting complexity simultaneously.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Instead of always rerouting requests to the assigned node and then responding through the original receiver, the system inverts the approach by allowing the receiving node to handle the request directly if it is the assigned node. This inversion eliminates unnecessary rerouting while maintaining fast client response times.

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

Data Source

PatentUS11644988B2Resource allocation in a storage system
Publication Date: 2023.05.09 VAST DATA LTD
  • US11644988B2 patent drawing
  • US11644988B2 patent drawing
  • US11644988B2 patent drawing

AI summary

A method for resource allocation in a storage system, the method may include determining to reduce a load imposed on a compute core of the storage system, wherein the compute core is responsible for executing (a) one or more background task shards, and (b) at least one non-sharded task for responding to an input/output (I/O) request sent to the storage system; and reducing the load imposed on the compute core by reallocating at least one background task shard of the one or more background task shards to another compute core of the storage system.