Dispersed Storage Write Commit Handling for Race Condition Reliability

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Distributed storage systems face challenges in managing data access and error correction across multiple storage units, leading to potential data loss and race conditions during write operations, which can cause processing delays or stalls.

Innovation Solution

A dispersed storage network (DSN) with a managing unit and integrity processing unit that employs error encoding and decoding using Cauchy Reed-Solomon encoding, allowing data to be split into encoded slices stored across multiple units, enabling robust error correction and simultaneous access while managing vaults and user permissions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If data is stored in a dispersed storage system with error correction encoding, then data reliability and recovery capability are improved, but write operation complexity and race condition management become more difficult

Engineering Contradiction:
Improvedata reliabilityVSAvoidwrite operation complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system performs preliminary actions by pre-encoding data into multiple dispersed slices with error correction codes before storage. This preliminary encoding prepares the data structure in advance, allowing the system to tolerate failures and resolve race conditions during write operations without requiring complex real-time decision-making when conflicts occur.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The data is segmented into multiple encoded slices distributed across different storage units. This segmentation allows independent handling of each slice during write operations, enabling the system to manage race conditions at the slice level rather than requiring complex coordination across the entire data set, thus improving reliability while managing complexity.

Inventive Principle:
Principle #1Segmentation

2Productivity

If multiple clients access the same data simultaneously in a dispersed storage system, then data availability and access speed are improved, but race conditions and data consistency issues arise

Engineering Contradiction:
Improvedata access speedVSAvoiddata consistency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent introduces an intermediary mechanism in the form of encoded data slices with error correction capabilities. These intermediaries act as buffers between multiple clients and the underlying storage system, allowing simultaneous access while maintaining data consistency through the mathematical properties of the encoding scheme, which can detect and correct inconsistencies arising from race conditions.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If error correction encoding is applied to dispersed stored data, then data recovery capability is improved, but processing time and computational overhead increase

Engineering Contradiction:
Improvedata recovery capabilityVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system applies partial error correction encoding, where only sufficient redundancy is added to tolerate the expected failure rate rather than providing complete protection against all possible failure scenarios. This partial action approach provides adequate data recovery capability while minimizing the computational overhead and processing time penalties associated with more extensive encoding schemes.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS20170160941A1Lock stealing writes for improved reliability
Publication Date: 2017.06.08 PURE STORAGE INC
  • US20170160941A1 patent drawing
  • US20170160941A1 patent drawing
  • US20170160941A1 patent drawing

AI summary

A method includes sending, by a first computing device, a first set of write requests and sending, by a second computing device, a second set of write requests to a set of storage units. The method further includes receiving, by the first computing device, favorable write responses from a first subset of storage units of the set of storage units and receiving, by the second computing device, favorable write responses from a second subset of storage units. The method further includes determining, by the first computing device, whether a number of the favorable write responses from the first subset of storage units equals or exceeds a write threshold number. When the number of the favorable write responses from the first subset of storage units equals or exceeds the write threshold number, the first computing device sends a set of commit requests to the set of storage units.