IP Library Granted Patent US 10,725,915
Granted Patent B1
US 10,725,915 · App. 15/476,447 · Granted Jul 28, 2020

Methods and systems for maintaining cache coherency between caches of nodes in a clustered environment

Inventors: Bhushan Jagtap (Pune, IN); Mark Hemment (Chatteris, GB); Anindya Banerjee (Pune, IN); Ranjit Noronha (Mumbai, IN); Jitendra Patidar (Pune, IN); Kundan Kumar (Patna, IN); Sneha Pawar (Pune, 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 10,725,915
App. No.
15/476,447
Granted
Jul 28, 2020
Kind
B1
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 (118)

1. A computer-implemented method, comprising:

identifying an owner node of a data object, wherein

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

the owner node is communicatively coupled to a local storage device,

the local storage device has a first latency,

the plurality of nodes are communicatively coupled to a shared storage device,

the shared storage device has a second latency,

the second latency is greater than the first latency, and

the local storage device and the shared storage device each comprise a copy of the data object;

subsequent to identifying the owner node for the data object, sending a first request from a first node to the owner node for a copy of the data object;

receiving the copy of the data object from the owner node, wherein

subsequent to the receiving, the data object is updated by a second node of the cluster, and

updating the data object results in an updated copy of the data object on the shared storage device and further results in updated copy of the data object on the local storage device coupled to the owner node;

subsequent to the updating, sending a second request from the first node to the owner node for a copy of the data object, wherein

at least one of the first request or the second request is a Remote Direct Memory Access (RDMA) request; and

subsequent to the second request, receiving the updated copy of the data object from the owner node.

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

instructing the owner node to cache the data object prior to sending the first request to the owner node for the data object, if the owner node is not identified by the identifying.

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

receiving the first request for the copy of the data object from an application;

determining whether a master node maintains information identifying the owner node for the data object; and

selecting a node in the cluster as the owner node if the master node does not maintain information identifying the owner node for the data object.

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

the owner node takes a lock comprising lock information on the data object, and

the lock information is maintained by the master node.

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

selecting a node as the owner node, wherein

selecting the node as the owner node is based on at least one of: a random selection method, a circular selection method, a cache characteristic selection method, and node priority.

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

selecting a node as the owner node, wherein

selecting the node as the owner node is performed by a reader node; and

a subsequent request for a copy of the data object from another reader node is serviced by the owner node by virtue of

the another reader node querying a master node for lock information maintained by a distributed lock manager, and

the another reader node determining that the owner node holds a lock on the data object.

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

the owner node, the master node, the reader node, and the another reader node are part of the plurality of nodes,

the local storage device is a Solid State Drive (SSD), and

the shared storage device is a Hard Disk Drive (HDD).

8. A non-transitory computer readable storage medium comprising program instructions executable to perform a method comprising:

identifying an owner node of a data object, wherein

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

the owner node is communicatively coupled to a local storage device,

the local storage device has a first latency,

the plurality of nodes are communicatively coupled to a shared storage device,

the shared storage device has a second latency,

the second latency is greater than the first latency, and

the local storage device and the shared storage device each comprise a copy of

the data object;

subsequent to identifying the owner node for the data object, sending a first request from a first node to the owner node for a copy of the data object;

receiving the copy of the data object from the owner node, wherein

subsequent to the receiving, the data object is updated by a second node of the cluster, and

updating the data object results in an updated copy of the data object on the shared storage device and further results in updated copy of the data object on the local storage device coupled to the owner node;

subsequent to the updating, sending a second request from the first node to the owner node for a copy of the data object, wherein

at least one of the first request or the second request is a Remote Direct Memory Access (RDMA) request; and

subsequent to the second request, receiving the updated copy of the data object from the owner node.

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

instructing the owner node to cache the data object prior to sending the first request to the owner node for the data object, if the owner node is not identified by the identifying.

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

receiving the first request for the copy of the data object from an application;

determining whether a master node maintains information identifying the owner node for the data object; and

selecting a node in the cluster as the owner node if the master node does not maintain information identifying the owner node for the data object.

11. The non-transitory computer readable storage medium of claim 10 , wherein

the owner node takes a lock comprising lock information on the data object, and

the lock information is maintained by the master node.

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

selecting a node as the owner node, wherein

selecting the node as the owner node is based on at least one of: a random selection method, a circular selection method, a cache characteristic selection method, and node priority.

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

selecting a node as the owner node, wherein

selecting the node as the owner node is performed by a reader node; and

a subsequent request for a copy of the data object from another reader node is serviced by the owner node by virtue of

the another reader node querying a master node for lock information maintained by a distributed lock manager, and

the another reader node determining that the owner node holds a lock on the data object.

14. The non-transitory computer readable storage medium of claim 13 , wherein

the owner node, the master node, the reader node, and the another reader node are part of the plurality of nodes,

the local storage device is a Solid State Drive (SSD), and

the shared storage device is a Hard Disk Drive (HDD).

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

identifying an owner node of a data object, wherein

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

the owner node is communicatively coupled to a local storage device,

the local storage device has a first latency,

the plurality of nodes are communicatively coupled to a shared storage device,

the shared storage device has a second latency,

the second latency is greater than the first latency, and

the local storage device and the shared storage device each comprise a copy of the data object;

subsequent to identifying the owner node for the data object, sending a first request from a first node to the owner node for a copy of the data object;

receiving the copy of the data object from the owner node, wherein

subsequent to the receiving, the data object is updated by a second node of the cluster, and

updating the data object results in an updated copy of the data object on the shared storage device and further results in updated copy of the data object on the local storage device coupled to the owner node;

subsequent to the updating, sending a second request from the first node to the owner node for a copy of the data object, wherein

at least one of the first request or the second request is a Remote Direct Memory Access (RDMA) request; and

subsequent to the second request, receiving the updated copy of the data object from the owner node.

16. The system of claim 15 , wherein the method further comprises:

instructing the owner node to cache the data object prior to sending the first request to the owner node for the data object, if the owner node is not identified by the identifying.

17. The system of claim 15 , wherein the method further comprises:

receiving the first request for the copy of the data object from an application;

determining whether a master node maintains information identifying the owner node for the data object; and

selecting a node in the cluster as the owner node if the master node does not maintain information identifying the owner node for the data object.

18. The system of claim 17 , wherein

the owner node takes a lock comprising lock information on the data object,

the lock information is maintained by master node, and

selecting a node as the owner node, wherein

selecting the node as the owner node is based on at least one of: a random selection method, a circular selection method, a cache characteristic selection method, or node priority.

19. The system of claim 18 , wherein

selecting a node as the owner node, wherein

selecting the node as the owner node is performed by a reader node; and

a subsequent request for a copy of the data object from another reader node is serviced by the owner node by virtue of

the another reader node querying a master node for lock information maintained by a distributed lock manager, and

the another reader node determining that the owner node holds a lock on the data object.

20. The system of claim 19 , wherein

the owner node, the master node, the reader node, and the another reader node are part of the plurality of nodes,

the local storage device is a Solid State Drive (SSD), and

the shared storage device is a Hard Disk Drive (HDD).

21. The method of claim 1 , wherein

the first request is a direct access request to read the data object from the local storage device.

Assignments (13)
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: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069574/0931 →
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 052426/0001 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 054535/0565 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Apr 16, 2020
From: VERITAS TECHNOLOGIES, LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 052426/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 4, 2018
From: JAGTAP, BHUSHAN; HEMMENT, MARK; BANERJEE, ANINDYA; KUMAR, KUNDAN; NORONHA, RANJIT; PATIDAR, JITENDRA; PAWAR, SNEHA
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 045716/0036 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Jul 10, 2017
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 043141/0403 →
Cited By (2)
US 12,197,728 US 12,572,477