Distributed Object Timestamps During Storage Link Disruptions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing storage systems face inefficiencies in managing data across multiple storage arrays, particularly in coordinating data operations and maintaining data integrity during power failures or controller failures, leading to potential data loss and increased latency.

Innovation Solution

Implementing a storage system architecture with dual storage array controllers that offload device management responsibilities, utilize non-volatile RAM for buffering, and synchronize object creation times across multiple storage systems to ensure data consistency and reliability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If synchronous negotiation of object creation time is implemented across multiple storage systems, then data consistency and reliability are improved, but system complexity and coordination overhead increase

Engineering Contradiction:
Improvedata consistencyVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

A timestamp authority is introduced as an intermediary component that centralizes the generation and distribution of monotonically increasing timestamps. This mediator receives write requests from multiple storage systems, assigns sequential timestamps, and returns them to the originating systems. By concentrating timestamp management in a single authoritative source, the system achieves data consistency across distributed storage without requiring complex peer-to-peer synchronization protocols, thus improving reliability while controlling system complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If dual storage array controllers are used to offload device management responsibilities, then system reliability and fault tolerance are improved, but device complexity and coordination requirements increase

Engineering Contradiction:
Improvefault toleranceVSAvoidcontroller complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The storage system is divided into two independent controllers, each managing specific device responsibilities. This segmentation allows the system to distribute device management tasks across multiple controllers, enabling fault tolerance since the failure of one controller does not compromise the entire system. Each controller can operate independently to handle read/write requests, and the system maintains data integrity through coordinated operation between the two controllers, thereby improving reliability while managing complexity through functional division.

Inventive Principle:
Principle #1Segmentation

3Productivity

If non-volatile RAM is used for buffering data, then write speed and data protection are improved, but memory capacity and cost increase

Engineering Contradiction:
Improvewrite speedVSAvoidmemory capacity
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent changes the physical state parameter of the buffering medium by using non-volatile RAM instead of traditional volatile RAM or magnetic disk buffering. This parameter change allows the system to maintain high write speeds comparable to volatile memory while gaining the data persistence characteristics of non-volatile storage. The non-volatile nature of the RAM enables data to be retained during power failures, providing automatic data protection without requiring large capacities for redundancy, thus achieving high productivity with controlled memory capacity requirements.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS12481675B2Synchronously negotiating an object's creation time across two or more storage systems
Publication Date: 2025.11.25 PURE STORAGE INC
  • US12481675B2 patent drawing
  • US12481675B2 patent drawing
  • US12481675B2 patent drawing

AI summary

Synchronously negotiating an object's creation time including identifying, by a first storage system among the two or more storage systems, a request to store a second updated version of the object; detecting, by the first storage system, a communications disruption among the two or more storage systems; and establishing, in dependence upon a local clock of the first storage system and a latest observed creation time associated with the object, a creation time for the second updated version of the object.