Non-Volatile Record System for Mass Storage PUT Operation Recovery

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Mass storage systems face challenges in ensuring data integrity and reliability, particularly when physical storage devices fail, as traditional replication and erasure coding methods do not effectively handle controller crashes or incomplete PUT operations.

Innovation Solution

The implementation of a non-volatile record system in working devices to store information about successfully written replicas or extents, allowing the repair function to restore and complete PUT operations even after a controller crash.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional replication or erasure coding is used to protect data, then data integrity is improved, but the system cannot handle controller crashes or incomplete PUT operations

Engineering Contradiction:
Improvedata integrityVSAvoidhandling controller crashes
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent applies preliminary action by having working devices store success information in non-volatile memory before the controller crash occurs. This allows the repair function to later identify which PUT operations were successfully written without requiring the controller to track this information, enabling the system to handle controller crashes effectively.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces non-volatile memory as an intermediary between the working devices and the controller. This intermediary stores success information persistently, allowing the repair function to recover PUT operation status even when the controller crashes, thus bridging the gap between working devices and controller reliability.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If the controller tracks all PUT operations to ensure completion, then data integrity is improved, but system complexity increases

Engineering Contradiction:
ImprovePUT operation completionVSAvoidcontroller complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts the tracking function from the controller and places it in the working devices themselves. Each working device stores success information in its own non-volatile memory, eliminating the need for the controller to track PUT operation completion status, thus reducing controller complexity while maintaining reliability.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent implements self-service by enabling working devices to autonomously track and record their own PUT operation success information in non-volatile memory. This self-tracking capability eliminates the need for centralized controller tracking, reducing controller complexity while ensuring PUT operation completion reliability.

Inventive Principle:
Principle #25Self-service

3Loss of time

If early confirmation is sent to users before all replicas are written, then user experience is improved, but data integrity risk increases

Engineering Contradiction:
ImprovePUT operation response timeVSAvoiddata integrity
Core Design Contradiction:
Loss of timeVSReliability

Solution Approach 1:

The patent implements feedback by having the repair function continuously monitor non-volatile memory for success information and automatically initiate repair operations when crashes are detected. This feedback mechanism allows early confirmation to users while maintaining data integrity through automatic recovery, resolving the contradiction between response time and reliability.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS20250028599A1Multiple error resiliency put operation with early confirmation
Publication Date: 2025.01.23 SCALITY
  • US20250028599A1 patent drawing
  • US20250028599A1 patent drawing
  • US20250028599A1 patent drawing

AI summary

A method is described. The method includes receiving a PUT operation request from a user to store a data item. The method also includes sending S PUT commands to S working storage devices to respectively store S replicas or extents for the data item. The method also includes confirming to the user that the data item was stored after receiving X acknowledgments from the S working devices where X<S. The method also includes, in response to a crash, reading non volatile records for the S working devices that record successful stores performed by the S working devices having corresponding acknowledgements that were not responded to. The method also includes recognizing from the non volatile records that less than S of the S replicas or extents were successfully stored into the S working devices. The method includes causing those of the S replicas or extents that were not successfully stored to be stored to complete the PUT operation.