Cluster Node Cache Sharing via Global Lock Manager

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current systems in clustered environments face bottlenecks due to the need for each node to retrieve data from the main file system every time it's accessed, despite the data being cached on another node, leading to slower access times and duplicate I/O requests.

Innovation Solution

Implementing a global lock manager to determine if a node has a cached copy of the data and allowing nodes to either pull or push data from each other's cache based on lock ownership, reducing the need for main file system access.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If each node retrieves data from the main file system every time it needs to access data, then data access can be performed without checking other nodes' caches, but access time increases significantly and duplicate I/O requests are generated

Engineering Contradiction:
Improvedata access timeVSAvoidcache coordination complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent introduces a global lock manager as an intermediary component that coordinates cache sharing between cluster nodes. The lock manager receives requests from nodes, determines if data is cached on other nodes, and facilitates data transfer between caches without requiring nodes to directly access the main file system, thus reducing access time while managing coordination complexity centrally

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent merges multiple nodes' caches into a coordinated caching system where data can be shared across nodes. By combining the caching resources of multiple nodes and enabling inter-node cache access through the lock manager, the system achieves faster data access without requiring redundant file system operations

Inventive Principle:
Principle #5Merging (Combining)

2Productivity

If nodes access data from the main file system, then data consistency is maintained, but I/O performance deteriorates due to slow disk access speeds

Engineering Contradiction:
ImproveI/O performanceVSAvoiddata access speed
Core Design Contradiction:
ProductivityVSSpeed

Solution Approach 1:

The patent applies preliminary action by pre-caching data on multiple nodes before it is needed. When data is accessed by one node, it is proactively cached on other nodes through the lock manager coordination, so that subsequent accesses can be served from local caches rather than requiring slow file system operations

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses copying by creating duplicate copies of data across multiple nodes' caches. Instead of having a single source of truth in the file system, the same data is copied to multiple nodes' caches, enabling fast local access while the lock manager ensures consistency and coordinates updates across the copies

Inventive Principle:
Principle #26Copying

Data Source

PatentUS10496538B2System, method and mechanism to efficiently coordinate cache sharing between cluster nodes operating on the same regions of a file or the file system blocks shared among multiple files
Publication Date: 2019.12.03 ARCTERA US LLC
  • US10496538B2 patent drawing
  • US10496538B2 patent drawing
  • US10496538B2 patent drawing

AI summary

Various systems, methods and apparatuses for coordinating the sharing of cache data between cluster nodes operating on the same data objects. One embodiment involves a first node in a cluster receiving a request for a data object, querying a global lock manager to determine if a second node in the cluster is the lock owner of the data object, receiving an indication identifying the second node as the lock owner and indicating that the data object is available in the second node's local cache, requesting the data object from the second node, and then receiving the data object from the second node's local cache. Other embodiments include determining whether the lock is a shared lock or an exclusive lock, and either pulling the data object from the local node of the second cache or receiving the data object that is pushed from the second node, as appropriate.