IP Library Granted Patent US 11,500,773
Granted Patent B2
US 11,500,773 · App. 16/939,737 · Granted Nov 15, 2022

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 11,500,773
App. No.
16/939,737
Granted
Nov 15, 2022
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 (143)

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

broadcasting an availability of a cache of a node of a plurality of nodes of a cluster, wherein

the availability of the cache is broadcast to one or more other nodes of the plurality of nodes;

receiving a lookup request at the node, wherein

the computer system implements the node,

the lookup request is received from a reader node,

the reader node is a one of the one or more other nodes, and

the lookup request is for a bitmap stored at the node;

performing a bitmap lookup on the bitmap;

determining an availability of a data object in the cache, wherein

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

the cache is maintained in a local storage device of the node; and

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

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

the permitting the reader node to access the data object comprises at least one of permitting the reader node to read the data object from the cache, or permitting the reader node to retrieve the data object from the cache.

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

selecting the node as an owner node, wherein

the selecting is performed by the reader node.

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

the node is selected based on at least one of

a random selection method,

a circular selection method,

a cache characteristic selection method, or

node priority.

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

attempting to acquire a lock for the data object, wherein

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

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

in response to the lock being acquired,

performing the permitting, wherein

the permitting comprises

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.

7. The computer-implemented method of claim 5 , 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.

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

granting the lock, wherein

the lock is granted by the global lock manager.

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

the lock comprises lock information regarding the data object, and

the lock information is maintained by the global lock manager.

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

determining whether the data object is in a cache of the reader node;

in response to the data object being in the cache of the reader node, serving the data object from the cache of the reader node; and

in response to the data object not being in the cache of the reader node, sending the lookup request to the node.

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

reading another data object from a shared storage device, wherein

the shared storage device is accessible by the plurality of nodes, and

the reading the another data object from the shared storage device is performed by the reader node;

storing the another data object in the cache of the reader node; and

serving the another data object from the cache of the reader node.

12. The computer-implemented method of claim 11 , wherein

the permitting the reader node to access the data object from the cache and the reading the another data object from the shared storage device are performed substantially simultaneously.

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

receiving an instruction to store the data object in the cache, wherein

the data object is read from a shared storage device, and

the shared storage device is accessible by the plurality of nodes.

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

sending a request to read the data object, wherein

the request to read the data object is sent to the node;

sending another lookup request with regard to another data object, wherein

the another lookup request is sent to another node of the plurality of nodes; and

in response to the another data object being available on the another node, sending another request to read the another data object, wherein

the another request to read the another data object is sent to the another node in parallel with the sending the request to read the data object.

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

the broadcasting is performed contemporaneously with at least one of

the node being brought online,

the cache being available for sharing, or

the cache no longer being available for sharing.

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

The broadcasting broadcasts cache availability information, and

the cache availability information comprises information regarding the cache that comprises at least one of

a size of a cache,

an amount of used cache space, or

an amount of free cache space.

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

The broadcasting broadcasts cache availability information, and

the cache availability information is

maintained in a specific bitmap, on a per-file system basis, on a number of nodes of the plurality of nodes, or

a consistent copy of the bitmap that is maintained, on a per-file system basis.

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

the broadcasting broadcasts cached data information, and

the cached data information comprises metadata that identifies one or more data objects that are cached tin the cache.

19. 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:

broadcasting an availability of a cache of a node of a plurality of nodes of a cluster, wherein

the availability of the cache is broadcast to one or more other nodes of the plurality of nodes;

receiving a lookup request at the node, wherein

the computer system implements the node,

the lookup request is received from a reader node,

the reader node is a one of the one or more other nodes, and

the lookup request is for a bitmap stored at the node;

performing a bitmap lookup on the bitmap;

determining an availability of a data object in the cache, wherein

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

the cache is maintained in a local storage device of the node; and

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

20. The non-transitory computer-readable storage medium of claim 19 , wherein

the permitting the reader node to access the data object comprises at least one of

permitting the reader node to read the data object from the cache, or

permitting the reader node to retrieve the data object from the cache.

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

attempting to acquire a lock for the data object, wherein

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

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

in response to the lock being acquired,

performing the permitting, wherein

the permitting comprises

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.

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

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.

24. A computing system comprising:

one or more processors; and

a computer-readable storage medium coupled to the one or more processors,

comprising program instructions, which, when executed by the one or more processors, perform a method comprising

broadcasting an availability of a cache of a node of a plurality of nodes of

a cluster, wherein

the availability of the cache is broadcast to one or more other nodes of the plurality of nodes,

receiving a lookup request at the node, wherein

the computing system implements the node,

the lookup request is received from a reader node,

the reader node is a one of the one or more other nodes, and

the lookup request is for a bitmap stored at the node,

performing a bitmap lookup on the bitmap,

determining an availability of a data object in the cache,

wherein

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

the cache is maintained in a local storage device of the node, and

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

Assignments (11)
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 069585/0150 Recorded Dec 1, 2025
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0848 →
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 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069574/0958 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
PATENT SECURITY AGREEMENT Recorded Dec 10, 2024
From: ARCTERA US LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069585/0150 →
SECURITY INTEREST Recorded Dec 10, 2024
From: ARCTERA US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 069563/0243 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC
To: ARCTERA US LLC
Reel/Frame 069548/0468 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT R/F 053926/0320 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 054535/0418 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Sep 29, 2020
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 053926/0320 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →