IP Library Granted Patent US 8,904,117
Granted Patent B1
US 8,904,117 · App. 13/723,748 · Granted Dec 2, 2014

Non-shared write-back caches in a cluster environment

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 8,904,117
App. No.
13/723,748
Granted
Dec 2, 2014
Kind
B1
Abstract

Various systems and methods for performing write-back caching in a cluster. For example, one method can involve a first node detecting that no failover nodes are available. A determination is made whether the first node should use write-back caching or not. If the first node is to continue using write-back caching, a first local cache identifier and a global cache identifier are both updated.

Claims (91)

1. A method comprising:

a first node detecting that no failover nodes are available, wherein

the first node comprises a local cache and a first local cache identifier,

the first node is coupled to a shared storage device, and

the shared storage device comprises a global cache identifier;

determining whether to allow write-back caching on the first node, wherein

the determining is performed in response to the detecting; and

if write-back caching is allowed on the first node, incrementing the first local cache identifier and the global cache identifier.

2. The method of claim 1 , further comprising:

performing a cache recovery operation in response to detecting that write-back caching is disallowed on the first node.

3. The method of claim 2 , wherein the performing comprises:

copying data from the local cache to the shared storage device;

preventing further data modifications from being stored in the local cache; and

updating a tracking structure to include information that identifies data modified during the recovery operation.

4. The method of claim 2 , further comprising:

updating cache status information to indicate that write-back caching is disallowed for the shared storage device, wherein

the updating is performed in response to determining that all data in the local cache is copied to the shared storage device; and

joining a second node to a cluster, wherein

the second node comprises a second local cache and a second local cache identifier.

5. The method of claim 4 , further comprising:

invalidating contents of the second local cache, wherein

the invalidating is performed in response to detecting that write-back caching is disallowed for the shared storage device.

6. The method of claim 4 , further comprising:

comparing the second local cache identifier with the global cache identifier; and

invalidating contents of the second local cache, wherein

the invalidating is performed in response to detecting that there is a mismatch between the second local cache identifier and the global cache identifier.

7. The method of claim 4 , further comprising:

determining whether write-back caching is allowed on the second node;

incrementing the second local cache identifier, wherein

the incrementing is performed in response to determining that write-back caching is allowed on the second node.

8. The method of claim 2 , further comprising:

detecting that the first node has failed, wherein

the first node failed prior to completion of the recovery operation; and

joining a second node to a cluster, wherein

the second node comprises a second local cache and a second local cache identifier.

9. The method of claim 8 , further comprising:

detecting that contents of the second local cache are valid, except for data modified during the recovery operation, wherein

the detecting that contents of the second local cache are valid comprises accessing a tracking structure that includes information that identifies the data modified during the recovery operation.

10. A non-transitory computer readable storage medium storing program instructions executable to:

detect that no failover nodes are available, wherein

detecting that no failover nodes are available is performed by a first node,

the first node comprises a local cache and a first local cache identifier,

the first node is coupled to a shared storage device, and

the shared storage device comprises a global cache identifier;

determine whether to allow write-back caching on the first node, wherein

determining whether to allow write-back caching on the first node is performed in response to detecting that no failover nodes are available; and

if write-back caching is allowed on the first node, increment the first local cache identifier and the global cache identifier.

11. The non-transitory computer readable storage medium of claim 10 , wherein the instructions are further executable to:

perform a cache recovery operation in response to detecting that write-back caching is disallowed on the first node.

12. The non-transitory computer readable storage medium of claim 11 , wherein the instructions are further executable to:

update cache status information to indicate that write-back caching is disallowed for the shared storage device, wherein

updating the cache status information is performed in response to determining that all data in the local cache is copied to the shared storage device; and

join a second node to a cluster, wherein

the second node comprises a second local cache and a second local cache identifier.

13. The non-transitory computer readable storage medium of claim 12 , wherein the instructions are further executable to:

determine whether write-back caching is allowed on the second node;

increment the second local cache identifier in response to determining that write-back caching is allowed on the second node.

14. The non-transitory computer readable storage medium of claim 12 , wherein the instructions are further executable to:

compare the second local cache identifier with the global cache identifier; and

invalidate contents of the second local cache, wherein

invalidating contents of the second local cache is performed in response to detecting that there is a mismatch between the second local cache identifier and the global cache identifier.

15. The non-transitory computer readable storage medium of claim 12 , wherein the instructions are further executable to:

detect that contents of the second local cache are valid, except for data modified during the recovery operation, wherein

detecting that contents of the second local cache are valid comprises accessing a tracking structure that includes information that identifies the data modified during the recovery operation.

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

detect that no failover nodes are available, wherein

detecting that no failover nodes are available is performed by a first node,

the first node comprises a local cache and a first local cache identifier,

the first node is coupled to a shared storage device, and

the shared storage device comprises a global cache identifier;

determine whether to allow write-back caching on the first node, wherein

determining whether to allow write-back caching on the first node is performed in response to detecting that no failover nodes are available; and

if write-back caching is allowed on the first node, increment the first local cache identifier and the global cache identifier.

17. The system of claim 16 , wherein the instructions are further executable to:

perform a cache recovery operation in response to detecting that write-back caching is disallowed on the first node;

update cache status information to indicate that write-back caching is disallowed for the shared storage device, wherein

updating the cache status information is performed in response to determining that all data in the local cache is copied to the shared storage device; and

join a second node to a cluster, wherein

the second node comprises a second local cache and a second local cache identifier.

18. The system of claim 17 , wherein the instructions are further executable to:

determine whether write-back caching is allowed on the second node;

increment the second local cache identifier in response to determining that write-back caching is allowed on the second node.

19. The system of claim 17 , wherein the instructions are further executable to:

compare the second local cache identifier with the global cache identifier; and

invalidate contents of the second local cache, wherein

invalidating contents of the second local cache is performed in response to detecting that there is a mismatch between the second local cache identifier and the global cache identifier.

20. The system of claim 16 , wherein the instructions are further executable to:

detect that contents of the second local cache are valid, except for data modified during the recovery operation, wherein

detecting that contents of the second local cache are valid comprises accessing a tracking structure that includes information that identifies the data modified during the recovery operation.

Assignments (10)
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
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 →
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 IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 7, 2013
From: KALEKAR, SANTOSH; PENDHARKAR, NIRANJAN S.; JAIN, VIPUL; MARATHE, SHAILESH; BANERJEE, ANINDYA; JETHWANI, RISHIKESH BHAGWANDAS
To: SYMANTEC CORPORATION
Reel/Frame 029574/0652 →