Dynamic Memory Range Assignment for Storage Load Balancing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data storage systems face challenges in efficiently distributing workload across resources, leading to potential overloading of processors and suboptimal handling of workload patterns, especially as complexity and demand increase.

Innovation Solution

The method involves dynamically transferring range assignments across processors by dividing storage ranges into smaller segments and adjusting processor assignments based on workload monitoring, using transition barrier commands to implement new range division algorithms and ensuring proper lock management to balance the load.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If workload is distributed across multiple processors using static range assignments, then processor overloading is prevented, but workload distribution efficiency deteriorates under changing access patterns

Engineering Contradiction:
Improveprocessor overload preventionVSAvoidworkload distribution efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements dynamic range assignment where processors can borrow and return storage ranges based on real-time workload conditions. This transforms the static range assignment system into a dynamic one that adapts to changing access patterns, allowing efficient workload distribution while maintaining reliable load balancing across processors

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If storage ranges are divided into smaller segments and assigned to processors, then workload distribution flexibility is improved, but system complexity increases due to lock management

Engineering Contradiction:
Improveworkload distribution flexibilityVSAvoidlock management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces a distribution entity as an intermediary that manages lock coordination between processors. This mediator handles the complexity of inter-processor lock management, allowing individual processors to focus on their assigned ranges while the distribution entity coordinates borrows and returns, thereby maintaining flexibility without overwhelming individual processor complexity

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If dynamic range borrowing is implemented between processors, then load balancing capability is improved, but access time increases due to lock acquisition overhead

Engineering Contradiction:
Improveload balancing capabilityVSAvoidaccess time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements preliminary action by having processors proactively return ranges when they become idle before other processors need them. This anticipatory approach reduces the frequency and duration of lock acquisition events, thereby maintaining load balancing capability while minimizing access time penalties associated with lock management

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10235069B2Load balancing by dynamically transferring memory range assignments
Publication Date: 2019.03.19 SANDISK TECHNOLOGIES LLC
  • US10235069B2 patent drawing
  • US10235069B2 patent drawing
  • US10235069B2 patent drawing

AI summary

A method and apparatus for accessing a storage device is disclosed. More specifically, for load balancing by dynamically transferring memory address range assignments. In one embodiment, a storage device receives, from a host apparatus, an access request directed at two or more storage addresses, assigns, based on a first storage address of the two or more storage addresses, the access request to a first processor of two or more processors of the storage device, obtains a local memory lock based on the first storage address, determines, based on a second storage address of the two or more storage addresses, that the second storage address is assigned to a second processor of the two or more processors, obtains a remote memory lock from the second processor based on the second storage address and processes the access request.