Cache Coherency Manager for Clustered Shared Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In clustering systems with shared storage, local caches on individual nodes can become stale after events like failover, leading to incorrect data being read from local caches that have not been updated with changes made by other nodes, causing inconsistencies across the cluster.

Innovation Solution

Implementing a cache coherency manager that monitors node-level access to shared storage, tracks the status of local caches across nodes, and maintains this information in a shared data structure, allowing nodes to determine whether to access their local caches or the shared storage for current data, thereby ensuring data consistency across the cluster.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If nodes use local caches to cache shared storage content, then read latency is significantly decreased, but data consistency across the cluster deteriorates due to stale data in local caches after failover or modifications by other nodes

Engineering Contradiction:
Improveread latencyVSAvoiddata consistency
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The system implements a feedback mechanism where the cache coherency manager continuously monitors shared storage access operations across all nodes and receives notifications about modifications. This feedback loop allows the manager to track which nodes have stale data in their local caches and trigger invalidation or update operations to maintain data consistency while preserving the performance benefits of local caching.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The cache coherency manager acts as an intermediary between the distributed local caches and the shared storage system. It receives notifications about storage modifications, determines which nodes are affected, and coordinates cache invalidation or update operations across the cluster. This intermediary layer maintains coherency without requiring nodes to directly communicate with each other or bypass their local caches.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If a cluster monitors all node-level access operations to shared storage to maintain cache coherency, then data consistency is improved, but system complexity increases

Engineering Contradiction:
Improvecache coherencyVSAvoidmonitoring system complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system merges the cache coherency management functionality into the existing shared storage access infrastructure. The cache coherency manager utilizes the same communication channels and event notification mechanisms already present in the clustered storage system, rather than implementing separate monitoring channels. This consolidation reduces overall system complexity while maintaining comprehensive visibility into storage access operations.

Inventive Principle:
Principle #5Merging (Combining)

3Reliability

If the system tracks cache status information for all nodes in the cluster, then data consistency is maintained, but information management overhead increases

Engineering Contradiction:
Improvedata consistencyVSAvoidtracked information volume
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The system applies local quality by tracking cache status information selectively rather than uniformly across all nodes. The cache coherency manager identifies and tracks only those nodes that have cached copies of modified data blocks, rather than maintaining status information for all nodes in the cluster. This targeted approach reduces the volume of tracked information while ensuring data consistency for affected nodes.

Inventive Principle:
Principle #3Local quality

Data Source

PatentEP2972899B1Providing local cache coherency in a shared storage environment
Publication Date: 2018.06.27 GEN DIGITAL INC
  • EP2972899B1 patent drawingFigure 1
  • EP2972899B1 patent drawingFigure 2
  • EP2972899B1 patent drawingFigure 3

AI summary

Multiple nodes of a cluster have associated non-shared, local caches, used to cache shared storage content. Each local cache is accessible only to the node with which it is associated, whereas the cluster-level shared storage is accessible by any of the nodes. Attempts to access the shared storage by the nodes of the cluster are monitored. Information is tracked concerning the current statuses of the local caches of the nodes of the cluster. Current tracked local cache status information is maintained, and stored such that it is accessible by the multiple nodes of the cluster. The current tracked local cache status information is used in conjunction with the caching functionality to determine whether specific nodes of the cluster are to access their local caches or the shared storage to obtain data corresponding to specific regions of the shared storage.