Distributed Storage Data Distribution Using Modular Arithmetic

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Distributed shared storage systems face performance reduction and complexity when data is distributed using the same pattern or when adjacent blocks from a single file are stored on the same server, and they struggle to handle changes in storage devices, such as failures or additions, without compromising data distribution resilience.

Innovation Solution

A function using sequentially assigned segment identifiers, where f(k) = ak + b with 'a' being relatively prime to 'n', is employed to distribute data blocks among storage units, allowing for efficient redistribution and minimizing data movement during changes in the storage unit list, while maintaining a history of mappings to recreate the data distribution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If data is distributed using the same pattern or adjacent blocks from a single file are stored on the same server, then storage organization is simplified, but performance is reduced

Engineering Contradiction:
Improvestorage organization complexityVSAvoiddata access performance
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent applies local quality by making each file's data blocks have unique distribution characteristics. Instead of using a uniform distribution pattern for all files, the system generates a distinct distribution pattern for each file using a seed value specific to that file. This ensures that adjacent blocks from different files are likely to be stored on different servers, optimizing performance while maintaining manageable complexity through the use of a standardized algorithmic approach.

Inventive Principle:
Principle #3Local quality

2Reliability

If a random or pseudorandom sequence algorithm is applied iteratively to generate each value in the sequence, then a unique distribution pattern for each file is achieved, but computational overhead increases as n computations are required for the nth value

Engineering Contradiction:
Improvedistribution pattern uniquenessVSAvoidcomputation time for determining storage location
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by pre-generating and storing the complete distribution sequence for each file before actual data storage operations. When a file is introduced to the system, its entire distribution sequence is computed and stored in advance. This allows subsequent data block placements to simply look up pre-computed values rather than performing iterative calculations at the time of storage, significantly reducing computational overhead during normal operations.

Inventive Principle:
Principle #10Preliminary action

3Loss of time

If the sequence of storage unit assignments is stored for each file to avoid computations, then computation time is reduced, but storage space increases due to the need to store long sequences for each file

Engineering Contradiction:
Improvecomputation time for storage location determinationVSAvoidstorage space for distribution sequences
Core Design Contradiction:
Loss of timeVSQuantity of substance

Solution Approach 1:

The patent extracts only the essential information needed to regenerate the distribution sequence - specifically, a small seed value - and stores this compact representation instead of the complete distribution sequence. The full sequence can be regenerated on-demand using the stored seed and the distribution algorithm. This approach maintains fast access performance while minimizing the additional storage space required, as the seed value occupies minimal space compared to storing entire sequences.

Inventive Principle:
Principle #2Taking out (Extraction)

4Reliability

If data is redistributed when storage devices are added or removed, then system resilience is improved, but data movement increases

Engineering Contradiction:
Improvesystem resilience to storage device changesVSAvoiddata movement during redistribution
Core Design Contradiction:
ReliabilityVSLoss of substance

Solution Approach 1:

The patent applies dynamics by making the data distribution pattern adaptive to changes in the storage system configuration. When storage devices are added or removed, the system dynamically regenerates the distribution sequences using the updated set of storage unit identifiers. This dynamic adaptation allows the system to maintain optimal distribution properties and resilience while minimizing data movement, as only the metadata (distribution sequences) needs to be updated rather than physically redistributing all data.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS7844775B2Distribution of data in a distributed shared storage system
Publication Date: 2010.11.30 AVID TECHNOLOGY INC
  • US7844775B2 patent drawing
  • US7844775B2 patent drawing
  • US7844775B2 patent drawing

AI summary

Segments or blocks of a file can be distributed among an number n of storage units by using a function of sequentially assigned segment identifiers for each segment, where the function is reduced modulo n, so long as the function is not congruent to segment identifier, modulo n, for any given segment identifier. An example of such a function, where n is the number of storage units and k is a segment identifier, is f(k)=ak+b, where a is relatively prime to n. Such a function can be computed quickly for any given segment. As the list of storage units changes, data may be redistributed using a new mapping of segments to storage units. Any new mapping can be restricted so that segments only move to a new storage unit or from an old storage unit, and not from one existing storage unit to another. In this way, the amount of data to be moved is limited. A chain of the lists of available storage units, as that list changes over time, is maintained to permit the history of file mappings to be recreated.