Dispersed Storage Write Locking for Overlapping Slice Ranges

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Dispersed storage networks face challenges in managing write conflicts when multiple write requests span overlapping ranges of slices, leading to potential data corruption and inefficiencies in storage operations.

Innovation Solution

The implementation of a method within the dispersed storage network to resolve write conflicts by determining whether write lock conflicts exist based on slice name ranges, allowing non-overlapping writes to proceed simultaneously while queuing overlapping requests to prevent data corruption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If write requests are processed simultaneously without conflict detection, then storage throughput is improved, but data corruption risk increases

Engineering Contradiction:
Improvestorage throughputVSAvoiddata integrity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system performs preliminary conflict detection by comparing slice name ranges of incoming write requests against previously locked ranges before allowing writes to proceed. This preliminary action prevents data corruption by identifying overlapping writes in advance, while still allowing non-overlapping writes to proceed simultaneously, thus maintaining high throughput without sacrificing data integrity.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If write lock conflicts are detected and resolved by queuing, then data integrity is maintained, but storage performance decreases

Engineering Contradiction:
Improvedata integrityVSAvoidstorage performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The conflict resolution mechanism applies selective queuing only to overlapping slice ranges while allowing non-overlapping writes to proceed immediately. This local quality approach ensures data integrity for conflicting writes without unnecessarily delaying independent writes, thereby maintaining optimal storage performance while preventing data corruption.

Inventive Principle:
Principle #3Local quality

3Reliability

If all write requests are sequenced to prevent conflicts, then data corruption is prevented, but operational efficiency decreases

Engineering Contradiction:
Improvedata integrityVSAvoidoperational efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The write request processing is segmented into independent slice range operations. Each write request is analyzed to determine its slice name range, and conflicts are resolved on a per-range basis rather than globally sequencing all writes. This segmentation allows parallel processing of non-conflicting writes while maintaining data integrity for overlapping ranges, significantly improving operational efficiency compared to universal sequencing.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11294765B1Resolving write conflicts in a dispersed storage network
Publication Date: 2022.04.05 PURE STORAGE INC
  • US11294765B1 patent drawing
  • US11294765B1 patent drawing
  • US11294765B1 patent drawing

AI summary

A method for execution by a dispersed storage and task (DST) execution unit includes receiving a write slice request from a requesting entity, where the write slice request includes a plurality of encoded data slices and a corresponding plurality of slice names. The plurality of slice names are interpreted to produce a slice name range. Whether a write lock conflict exists is determined based on the slice name range. An unfavorable write slice response is issued to the requesting entity when the write lock conflict is determined to exist. When the write lock conflict is determined to not exist, local storage of the plurality of encoded data slices is initiated, a favorable write slice response is issued to the requesting entity, and the processing system indicates that the slice name range is not locked when completing the local storage of the plurality of encoded data slices.