IP Library Granted Patent US 12,147,344
Granted Patent B2
US 12,147,344 · App. 18/055,174 · Granted Nov 19, 2024

Methods and systems for maintaining cache coherency between nodes in a clustered environment by performing a bitmap lookup in response to a read request from one of the nodes

Inventors: Bhushan Jagtap (Maharashtra, IN); Mark Hemment (Chatteris, GB); Anindya Banerjee (Maharashtra, IN); Ranjit Noronha (Maharashtra, IN); Jitendra Patidar (Maharashtra, IN); Kundan Kumar (Bihar, IN); Sneha Pawar (Maharashtra, IN)
Assignee: Veritas Technologies LLC
G06F12/0815G06F2212/1021G06F2212/1024G06F2212/1032G06F2212/284G06F2212/608
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,147,344
App. No.
18/055,174
Granted
Nov 19, 2024
Kind
B2
Abstract

Disclosed herein are methods, systems, and processes to provide coherency across disjoint caches in clustered environments. It is determined whether a data object is owned by an owner node, where the owner node is one of multiple nodes of a cluster. If the owner node for the data object is identified by the determining, a request is sent to the owner node for the data object. However, if the owner node for the data object is not identified by the determining, selects a node in the cluster is selected as the owner node, and the request for the data object is sent to the owner node.

Claims (116)

1. A computer-implemented method implemented in a computer system, comprising:

maintaining lock information for a plurality of data objects, wherein

the lock information is maintained by a master node,

the master node is one of a plurality of nodes of a cluster, and

the lock information identifies each one of a plurality of owner nodes holding a lock on each data object of the plurality of data objects;

receiving a query from a reader node, wherein

the reader node is a node of the plurality of nodes other than the master node,

each owner node of the plurality of owner nodes is a node of the plurality of nodes other than the master node or the reader node, and

the query identifies a data object;

determining whether the data object is among the plurality of data objects; and

in response to a determination that the data object is among the plurality of data objects,

attempting to identify an owner node holding the lock on the data object, wherein the owner node is a one of the plurality of owner nodes, and

in response to the owner node being identified, sending a request for the data object to the owner node.

2. The computer-implemented method of claim 1 , further comprising:

receiving the request at the owner node, wherein

the request is for an updated copy of the data object stored in a local storage device of the owner node;

acquiring a lock for the data object, wherein

the lock is granted by a global lock manager that implements a distributed locking mechanism in the cluster; and

sending the updated copy of the data object to the reader node.

3. The computer-implemented method of claim 1 , wherein

the lock information is implemented using a bitmap,

each bit in the bitmap represents a corresponding data object of the plurality of data objects, and

the method further comprises

performing a bitmap lookup on the bitmap,

determining an availability of a data object, wherein

the availability of the data object is determined based, at least in part, on a result of the bitmap lookup, and

in response to the data object being available, permitting the reader node to access the data object.

4. The computer-implemented method of claim 3 , wherein

the lock information is maintained by a plurality of global lock managers executed by the master node, and

the plurality of global lock managers maintain owner node information coherently by maintaining a consistent copy of the lock information at each node of the plurality of nodes.

5. The computer-implemented method of claim 1 , further comprising:

maintaining owner node information, wherein

the lock information is maintained by a plurality of global lock managers executed by the master node, and

the plurality of global lock managers maintain the owner node information coherently.

6. The computer-implemented method of claim 5 , the attempting comprises:

accessing the owner node information, wherein

the owner node information is accessed in a cluster-wide manner by the plurality of global lock managers.

7. The computer-implemented method of claim 5 , wherein

the plurality of global lock managers implement a distributed locking mechanism that provides metadata coherency and cache coherency across the plurality of nodes.

8. The computer-implemented method of claim 1 , wherein

the lock information is maintained at the master node, and

the data object is stored in a shared storage device of the cluster.

9. The computer-implemented method of claim 1 , further comprising:

maintaining the lock information, wherein

the lock information is maintained by a global lock manager,

the lock is a lock type that is specific to maintenance of cluster-wide ownership of data objects.

10. The computer-implemented method of claim 9 , further comprising:

the lock type minimizes memory footprint across the cluster,

the lock type facilitates determination of owner node identity, and

the lock type permits storage of owner node information indicating multiple owner nodes, when the data object is cached at multiple locations.

11. The computer-implemented method of claim 1 , further comprising:

attempting to acquire the lock for the data object, wherein

the lock is managed by a global lock manager that implements a distributed locking mechanism in the cluster.

12. The computer-implemented method of claim 11 , further comprising:

in response to the lock being acquired,

permitting the reader node to access the data object, comprising

receiving a query for the data object, wherein

the query is received from the reader node, and

in response to a result of the query indicating that the data object is available,

receiving a request to read the data object, and

in response to the request to read the data object, providing the reader node with read access to the data object.

13. The computer-implemented method of claim 11 , further comprising:

in response to the lock not being acquired,

selecting another node of the plurality of nodes, wherein

the selecting is performed by the reader node, and

the another node is one of the plurality of nodes other than then node.

14. The computer-implemented method of claim 11 , further comprising:

granting the lock, wherein

the lock is granted by the global lock manager,

the lock comprises lock information regarding the data object, and

the lock information is maintained by the global lock manager.

15. A non-transitory computer-readable storage medium, comprising program instructions, which, when executed by one or more processors of a computing system, perform a method comprising:

maintaining lock information for a plurality of data objects, wherein

the lock information is maintained by a master node,

the master node is one of a plurality of nodes of a cluster, and

the lock information identifies each one of a plurality of owner nodes holding a lock on each data object of the plurality of data objects;

receiving a query from a reader node, wherein

the reader node is a node of the plurality of nodes other than the master node,

each owner node of the plurality of owner nodes is a node of the plurality of nodes other than the master node or the reader node, and

the query identifies a data object;

determining whether the data object is among the plurality of data objects; and

in response to a determination that the data object is among the plurality of data objects,

attempting to identify an owner node holding the lock on the data object, wherein the owner node is a one of the plurality of owner nodes, and

in response to the owner node being identified, sending a request for the data object to the owner node.

16. The non-transitory computer-readable storage medium of claim 15 , wherein the method further comprises:

maintaining owner node information, wherein

the lock information is maintained by a plurality of global lock managers executed by the master node, and

the plurality of global lock managers maintain the owner node information coherently.

17. The non-transitory computer-readable storage medium of claim 16 , wherein the method further comprises:

accessing the owner node information, wherein

the owner node information is accessed in a cluster-wide manner by the plurality of global lock managers.

18. The non-transitory computer-readable storage medium of claim 16 , wherein the method further comprises:

the plurality of global lock managers implement a distributed locking mechanism that provides metadata coherency and cache coherency across the plurality of nodes.

19. The non-transitory computer-readable storage medium of claim 15 , wherein the method further comprises:

attempting to acquire the lock for the data object, wherein

the lock is managed by a global lock manager that implements a distributed locking mechanism in the cluster; and

granting the lock, wherein

the lock is granted by the global lock manager,

the lock comprises lock information regarding the data object, and

the lock information is maintained by the global lock manager.

20. A system comprising:

one or more processors; and

a memory coupled to the one or more processors, wherein the memory stores program instructions executable by the one or more processors to perform a method comprising

maintaining lock information for a plurality of data objects, wherein

the lock information is maintained by a master node,

the master node is one of a plurality of nodes of a cluster, and

the lock information identifies each one of a plurality of owner nodes holding a lock on each data object of the plurality of data objects,

receiving a query from a reader node, wherein

the reader node is a node of the plurality of nodes other than the master node,

each owner node of the plurality of owner nodes is a node of the plurality of nodes other than the master node or the reader node, and

the query identifies a data object,

determining whether the data object is among the plurality of data objects, and

in response to a determination that the data object is among the plurality of data objects,

attempting to identify an owner node holding the lock on the data object, wherein

the owner node is a one of the plurality of owner nodes, and

in response to the owner node being identified, sending a request for the data object to the owner node.

Assignments (6)
SECURITY INTEREST Recorded Dec 12, 2025
From: ARCTERA US LLC
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 073951/0470 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 070530/0497 Recorded Dec 1, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0730 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 069585/0150 Recorded Dec 1, 2025
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0848 →
SECURITY INTEREST Recorded Dec 10, 2024
From: ARCTERA US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 069563/0243 →
PATENT SECURITY AGREEMENT Recorded Dec 10, 2024
From: ARCTERA US LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069585/0150 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC
To: ARCTERA US LLC
Reel/Frame 069548/0468 →
Continuity (3)
Continuation 16939737 · Jul 27, 2020
Continuation 15476447 · Mar 31, 2017
Related Publication 20230071303A1 · Mar 9, 2023