Cache Coherency Manager for Clustered Shared Storage
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
3Reliability
If the system tracks cache status information for all nodes in the cluster, then data consistency is maintained, but information management overhead increases
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.
Data Source
Figure 1
Figure 2
Figure 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.