IP Library Granted Patent US 10,831,662
Granted Patent B1
US 10,831,662 · App. 16/544,590 · Granted Nov 10, 2020

Systems and methods for maintaining cache coherency

Inventors: Jitendra Patidar (Pune, IN); Anindya Banerjee (Pune, IN); Kundan Kumar (Pune, IN)
Assignee: Veritas Technologies LLC
G06F12/0815G06F12/0866G06F12/084G06F12/0875
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,831,662
App. No.
16/544,590
Granted
Nov 10, 2020
Kind
B1
Abstract

The disclosed computer-implemented method for maintaining cache coherency may include (1) receiving an indication of a revocation of a grant to an owner node of a shared lock for a data object owned by the owner node, (2) invalidating, in response to the indication, a copy of the object in a local cache of the owner node, (3) releasing, in response to the indication, the grant of the shared lock, (4) receiving, after the releasing of the grant, a request from the requesting node to update the object in the cache, (5) transmitting, in response to the request to update the object, a request for a shared lock for the object, (6) receiving an indication of a grant of the shared lock, and (7) updating, in response to the grant of the shared lock, the object in the cache. Various other methods, systems, and computer-readable media are also disclosed.

Claims (46)

1. A computer-implemented method for maintaining cache coherency, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

receiving, by an owner node of a plurality of nodes of a clustered storage system, an indication of a revocation of a grant to the owner node of a shared lock for a data object owned by the owner node;

invalidating, by the owner node in response to the indication of the revocation of the grant to the owner node of the shared lock, a copy of the data object in a local cache of the owner node;

releasing, by the owner node in response to the indication of the revocation of the grant to the owner node of the shared lock, the grant of the shared lock;

receiving, by the owner node after the releasing of the grant of the shared lock, a request from a first requesting node to update the data object in the local cache of the owner node;

transmitting, by the owner node in response to the request to update the data object, a request for a shared lock for the data object;

receiving, by the owner node, an indication of a grant of the shared lock to the owner node; and

updating, by the owner node in response to the grant of the shared lock, the data object in the local cache.

2. The computer-implemented method of claim 1 , wherein the updating of the data object in the local cache comprises populating the data object in the local cache with data received in the request to update the data object.

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

receiving, by the owner node from a second requesting node of the plurality of nodes, a request to read the data object; and

transmitting, by the owner node to the second requesting node in response to the request to read the data object, the data object from the local cache of the owner node to the second requesting node.

4. The computer-implemented method of claim 1 , wherein the local cache of the owner node is located on a solid-state drive of the owner node.

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

the receiving, by the owner node, of the request from the first requesting node to update the data object occurs while the first requesting node holds a grant of an exclusive lock for the data object;

the request for the shared lock comprises a preferred request for the shared lock prior to a release of the grant of the exclusive lock by the first requesting node; and

the grant of the shared lock to the owner node occurs prior to grants of preceding requests for a lock for the data object.

6. The computer-implemented method of claim 5 , wherein the release of the grant by the first requesting node of the exclusive lock is initiated in response to a non-preferred request for the shared lock for the data object from a second requesting node of the plurality of nodes in response to the second requesting node receiving a read request for the data object.

7. The computer-implemented method of claim 5 , wherein the release of the grant by the first requesting node of the exclusive lock is initiated in response to a non-preferred request for the shared lock from the owner node in response to the owner node receiving a read request for the data object.

8. The computer-implemented method of claim 5 , wherein the release of the grant by the first requesting node of the exclusive lock is initiated in response to a non-preferred request for the shared lock from the owner node in response to a predetermined amount of time elapsing from the invalidating of the copy of the data object in the local cache of the owner node.

9. The computer-implemented method of claim 5 , wherein the release of the grant by the first requesting node of the exclusive lock is initiated in response to an amount of data stored in a temporary cache of the first requesting node exceeding a predetermined limit.

10. The computer-implemented method of claim 5 , wherein the release of the grant by the first requesting node of the exclusive lock is initiated in response to an amount of time during which update data for the data object has remained in a temporary cache of the first requesting node exceeding a predetermined limit.

11. The computer-implemented method of claim 1 , wherein the receiving, by the owner node, of the request from the first requesting node to update the data object occurs while the first requesting node holds a grant of a shared lock for the data object.

12. The computer-implemented method of claim 11 , wherein the first requesting node holds the grant of the shared lock as a result of a downgrade of a grant to the first requesting node of an exclusive lock for the data object.

13. The computer-implemented method of claim 12 , wherein the downgrade of the exclusive lock to the shared lock is initiated by the first requesting node.

14. The computer-implemented method of claim 12 , wherein the downgrade occurs after the first requesting node stores data for the request to update the data object in a backend storage system accessible by the owner node.

15. The computer-implemented method of claim 11 , wherein the indication of the grant of the shared lock to the owner node occurs while the first requesting node retains the grant of the shared lock to the first requesting node.

16. The computer-implemented method of claim 1 , wherein the invalidating of the copy of the data object in the local cache of the owner node occurs concurrently with the invalidating of a copy of the data object in a local cache of at least one other node of the plurality of nodes.

17. The computer-implemented method of claim 1 , wherein the receiving of the request to update the data object in the local cache comprises storing, by the owner node, data in the request to update the data object to a temporary cache of the owner node that is separate from the local cache of the owner node.

18. The computer-implemented method of claim 1 , wherein the receiving, by the owner node, of the indication of a revocation of the grant to the owner node of the shared lock is responsive to a request by the first requesting node for a grant of an exclusive lock for the data object to initiate an update operation of the data object to a backend storage system accessible by the owner node.

19. A system for maintaining cache coherency, the system comprising:

a lock communication module, stored in memory, that receives an indication of a revocation of a grant to an owner node of a plurality of nodes of a clustered storage system of a shared lock for a data object owned by the owner node;

a local cache control module, stored in memory, that invalidates, in response to the indication of the revocation of the grant to the owner node of the shared lock, a copy of the data object in a local cache of the owner node, wherein the lock communication module, in response to the indication of the revocation of the grant to the owner node of the shared lock, releases the grant of the shared lock; and

a node communication module, stored in memory, that receives, by the owner node, a request from a requesting node to update the data object in the local cache of the owner node after the releasing of the grant of the shared lock;

wherein the lock communication module transmits, in response to the request to update the data object, a request for a shared lock for the data object;

wherein the lock communication module receives an indication of a grant of the shared lock to the owner node; and

wherein the local cache control module updates, in response to the grant of the shared lock, the data object in the local cache; and

at least one physical processor that executes the lock communication module, the local cache control module, and the node communication module.

20. A non-transitory computer-readable medium comprising one or more computer-executable instructions that, when executed by at least one processor of a computing device, cause the computing device to:

receive an indication of a revocation of a grant to an owner node of a plurality of nodes of a clustered storage system of a shared lock for a data object owned by the owner node;

invalidate, in response to the indication of the revocation of the grant to the owner node of the shared lock, a copy of the data object in a local cache of the owner node;

release, in response to the indication of the revocation of the grant to the owner node of the shared lock, the grant of the shared lock;

receive, by the owner node, after the releasing of the grant of the shared lock, a request from a requesting node to update the data object in the local cache of the owner node;

transmit, in response to the request to update the data object, a request for a shared lock for the data object;

receive an indication of a grant of the shared lock to the owner node; and

update, in response to the grant of the shared lock, the data object in the local cache.

Assignments (14)
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 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069697/0238 →
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 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
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 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Mar 18, 2020
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 052189/0311 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 3, 2019
From: PATIDAR, JITENDRA; BANERJEE, ANINDYA; KUMAR, KUNDAN
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 050245/0032 →
Continuity (1)
Continuation 15727244 · Oct 6, 2017