Storage Controller Cache Mirroring for Data Integrity

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In dual active-active storage controller configurations, data integrity is compromised when a storage controller fails before completing data merge operations, leading to potential data loss due to incomplete write operations and overlapping write locations.

Innovation Solution

Implementing a system where storage controllers mirror data with relative timestamps, allowing the surviving controller to recreate the failed controller's cache, merge data block-by-block based on timestamps, and write the correct data to persistent storage, ensuring data integrity by maintaining the logical write order.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If data is mirrored to a surviving controller during active-active operation, then data availability is improved, but data integrity is compromised when the failed controller's cache state is not properly reconstructed

Engineering Contradiction:
Improvedata availabilityVSAvoiddata integrity
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The system performs preliminary actions by mirroring data to the surviving controller before failure occurs and by preemptively recording relative timestamps of all write operations. When failure occurs, these pre-recorded timestamps enable the surviving controller to immediately reconstruct the failed controller's cache state in the correct write order, preventing data integrity loss while maintaining availability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system creates a copy of the failed controller's cache state in the surviving controller's memory using relative timestamps as the copying mechanism. Each write operation's data is copied to the surviving controller with an associated timestamp, allowing reconstruction of the exact cache state without requiring the original controller to be present.

Inventive Principle:
Principle #26Copying

2Reliability

If the surviving controller attempts to merge data from multiple write operations, then data integrity can be preserved, but the complexity of the failure recovery process increases

Engineering Contradiction:
Improvedata integrityVSAvoidfailure recovery complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system changes the parameter of data identification from complex metadata or addressing schemes to simple relative timestamps. Each write operation is assigned a sequential timestamp, transforming the merge operation into a straightforward sorting and comparison task based on these timestamps, thereby preserving integrity while reducing recovery complexity.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If relative timestamps are used to order write operations, then data integrity during recovery is improved, but the overhead of timestamp management increases system complexity

Engineering Contradiction:
Improvedata integrityVSAvoidtimestamp management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system segments the write operation tracking into independent timestamp records for each controller. Each controller maintains its own sequential timestamp counter, dividing the complex ordering problem into simple, independent counting tasks that are easy to manage and reconstruct, reducing overall system complexity while ensuring integrity.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11593236B2Preserving data integrity during controller failures
Publication Date: 2023.02.28 SEAGATE TECH LLC
  • US11593236B2 patent drawing
  • US11593236B2 patent drawing
  • US11593236B2 patent drawing

AI summary

Systems and processes are disclosed to preserve data integrity during a storage controller failure. In some examples, a storage controller of an active-active controller configuration can back-up data and corresponding cache elements to allow a surviving controller to construct a correct state of a failed controller's write cache. To accomplish this, the systems and processes can implement a relative time stamp for the cache elements that allow the backed-up data to be merged on a block-by-block basis.