Dual-Controller Cache Coherency via Identification Data Exchange

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Dual-controller storage arrays face inefficiencies in maintaining cache data coherency and resource consumption due to methods like mirrored caching or limited caching duration, which restrict data availability beyond a single transaction.

Innovation Solution

A method where one controller writes data to persistent storage and copies identification data to another controller, allowing the second controller to invalidate cached data, ensuring coherency without data duplication and extending cache validity beyond a single transaction.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If mirrored caching is used to maintain cache data coherency between controllers, then cache data coherency is improved, but system resource consumption and time overhead increase

Engineering Contradiction:
Improvecache data coherencyVSAvoidsystem resource consumption
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent extracts only the essential identification data (such as data identifiers, addresses, or metadata) from the cached data and transmits this minimal information between controllers, rather than copying the entire cached data. This extraction approach maintains cache coherency while dramatically reducing system resource consumption and bandwidth usage compared to full mirrored caching.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces an intermediary mechanism where identification data acts as a mediator between controllers. Instead of direct data copying, each controller transmits identification data about its cached data to the other controller, which then uses this identification information to determine what data to invalidate or update in its own cache, reducing direct data transmission overhead.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Duration of action of moving object

If data is cached for longer than a single transaction, then data availability and access speed are improved, but maintaining cache data coherency becomes more difficult

Engineering Contradiction:
Improvecache data validity durationVSAvoidcache coherency management complexity
Core Design Contradiction:
Duration of action of moving objectVSDevice complexity

Solution Approach 1:

The patent implements a feedback mechanism where controllers continuously exchange identification data about their cached data with each other. This ongoing feedback allows controllers to track the validity and state of cached data across multiple transactions, enabling longer cache validity durations while automatically detecting when cache data needs to be invalidated or updated based on the received identification information.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent uses preliminary action by pre-establishing identification data structures and validation protocols that enable controllers to quickly determine cache validity without complex real-time coordination. The identification data is prepared and exchanged in advance, allowing controllers to make rapid coherency decisions that support extended caching beyond single transactions.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8185691B2Optimized cache coherency in a dual-controller storage array
Publication Date: 2012.05.22 NETAPP INC
  • US8185691B2 patent drawing
  • US8185691B2 patent drawing

AI summary

Data is cached in a dual-controller storage array having a first cache controlled by a first controller, a second cache controlled by a second controller, and a shared array of persistent storage devices, such as disk drives. When one of the controllers receives a write request, it stores the data in persistent storage, stores a copy of that data in the first cache, and transmits identification data to the second controller that identifies the data written to persistent storage. Using the identification data, the second controller invalidates any data stored in the second cache that corresponds to the data that the first controller wrote to persistent storage. If a controller receives a read request, and the requested data is validly stored in its cache, the controller retrieves it from the cache; otherwise, the controller reads the requested data from persistent storage and caches a copy of the requested data.