IP Library Granted Patent US 9,830,263
Granted Patent B1
US 9,830,263 · App. 14/319,343 · Granted Nov 28, 2017

Cache consistency

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 9,830,263
App. No.
14/319,343
Granted
Nov 28, 2017
Kind
B1
Abstract

A computer-executable method, system, and computer program product for managing a data storage system using a distributed write-through cache, wherein the data storage system comprises a first node, a second node, and a data storage array, wherein the first node includes a first cache and the second node includes a second cache, the computer-executable method, system, and computer program product comprising providing cache coherency on the data storage system by synchronizing the second cache with the first cache based on I/O requests received at the first node.

Claims (59)

1. A computer-executable method of managing a data storage system using a distributed write-through cache, wherein the data storage system comprises a first node, a second node, and a data storage array, wherein the first node includes a first cache and the second node includes a second cache, the computer-executable method comprising:

providing cache coherency on the data storage, system by synchronizing the second cache with the first cache based on Input/Output (I/O) requests received at the first node;

wherein nodes within the data storage system are enabled to reinitialize communication between the nodes upon determining that communication between nodes within the data storage system has failed;

wherein nodes within the data storage system are enabled to suspend cache synchronization upon a specified number of failed attempts to reinitialize communication between the nodes;

upon suspension of any node within the data storage system, the data storage system is enabled to notify every other node within the data storage system of the suspension; and

upon reinitialization of communication with any suspended node within the data storage system, restoring cache coherency on the data storage system by synchronizing a cache of the any suspended node with any cache of any functional node of the data storage system.

2. The computer-executable method of claim 1 , wherein the synchronizing comprises:

processing an I/O request received at the first node, wherein the I/O request relates to data stored on the data storage array; and

sending an update message to the second node.

3. The computer-executable method of claim 2 , wherein the update message is a heartbeat message.

4. The computer-executable method of claim 2 , wherein the update message relates to stale data stored within the second cache on the second node.

5. The computer-executable method of claim 2 , further comprising:

checking, at the first node, for an acknowledgment of the update message;

wherein the first node continues checking for a first amount of time, wherein when the first amount of time elapses, the first node suspends caching on the first node and is enabled to operate in a pass through mode.

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

re-initializing communication between the first node and the second node once a second amount of time has elapsed.

7. The computer-executable method of claim 2 , further comprising:

receiving the update message at the second node;

making a determination, at the second node, whether the update message is a heartbeat message; and

upon making a positive determination that the update message is a heartbeat message, sending an acknowledgement message from the second node in response to the update message.

8. The computer-executable method of claim 7 , further comprising upon making a negative determination that the update message is a heartbeat message, updating a status of the second cache based on the update message.

9. A system, comprising:

a data storage system including a first node, a second node, and a data storage array, wherein the first node includes a first cache and the second node includes a second cache; and

computer-executable program logic encoded in memory of one or more computers in communication with the data storage system to enable management of a distributed write-through cache, wherein the computer-executable program logic is configured for the execution of:

providing cache coherency on the data storage system by synchronizing the second cache with the first cache based on Input/Output (I/O) requests received at the first node;

wherein nodes within the data storage system are enabled to reinitialize communication between the nodes upon determining that communication between nodes within the data storage system has failed;

wherein nodes within the data storage system are enabled to suspend cache synchronization upon a specified number of failed attempts to reinitialize communication between the nodes;

upon suspension of any node within the data storage system, the data storage system is enabled to notify every other node within the data storage system of the suspension; and

upon reinitialization of communication with any suspended node within the data storage system, restoring cache coherency on the data storage system by synchronizing a cache of the any suspended node with any cache of any functional node of the data storage system.

10. The system of claim 9 , wherein the synchronizing comprises:

processing an I/O request received at the first node, wherein the I/O request relates to data stored on the data storage array; and

sending an update message to the second node.

11. The system of claim 10 , wherein the update message is a heartbeat message.

12. The system of claim 10 , wherein the update message relates to stale data stored within the second cache on the second node.

13. The system of claim 10 , wherein the computer-executable program logic is further configured for the execution of:

checking, at the first node, for an acknowledgment of the update message;

wherein the first node continues checking for a first amount of time, wherein when the first amount of time elapses, the first node suspends caching on the first node and is enabled to operate in a pass through mode.

14. The system of claim 13 , wherein the computer-executable program logic is further configured for the execution of:

re-initializing communication between the first node and the second node once a second amount of time has elapsed.

15. The system of claim 10 , wherein the computer-executable program logic is further configured for the execution of:

receiving the update message at the second node;

making, a determination, at the second node, whether the update message is a heartbeat message; and

upon making a positive determination that the update message is a heartbeat message, sending an acknowledgement message from the second node in response to the update message.

16. The system of claim 15 , wherein the computer-executable program logic is further configured for the execution of upon making a negative determination that the update message is a heartbeat message, updating a status of the second cache based on the update message.

17. A computer program product for managing a data storage system using a distributed write-through cache, wherein the data storage system comprises a first node, a second, node, and a data storage array, wherein the first node includes a first cache and the second node includes a second cache, the computer program product comprising:

a non-transitory computer readable medium encoded with computer-executable program code for using read signatures in replication, the code configured to enable the execution of:

providing cache coherency on the data storage system by synchronizing, the second cache with the first cache based on Input/Output (I/O) requests received at the first node;

wherein nodes within the data storage system are enabled to reinitialize communication between the nodes upon determining that communication between nodes within the data storage system has failed;

wherein nodes within the data storage system are enabled to suspend cache synchronization upon a specified number of failed attempts to reinitialize communication between the nodes;

upon suspension of any node within the data storage system, the data storage system is enabled to notify every other node within the data storage system of the suspension; and

upon reinitialization of communication with any suspended node within the data storage system, restoring cache coherency on the data storage system by synchronizing a cache of the any suspended node with any cache of any functional node of the data storage system.

18. The computer program product of claim 17 , wherein the synchronizing comprises:

processing an I/O request received at the first node, wherein the I/O request relates to data stored on the data storage array; and

sending an update message to the second node.

19. The computer program product of claim 18 , wherein the code is further configured to enable the execution of:

checking, at the first node, for an acknowledgment of the update message;

wherein the first node continues checking for a first amount of time, wherein when the first amount of time elapses, the first node suspends caching on the first node and is enabled to operate in a pass through mode.

20. The computer program product of claim 19 , wherein the code is further configured to enable the execution of:

re-initializing communication between the first node and the second node once a second amount of time has elapsed.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045482/0131) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 061749/0924 →
RELEASE OF SECURITY INTEREST AT REEL 045482 FRAME 0395 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058298/0314 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Mar 1, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 045482/0395 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Mar 1, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 045482/0131 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2017
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 041872/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 8, 2016
From: DEVOR, ORLY; ZILPA, LIOR; DEIFT, MICHAEL; GINOT, ELI; DERBEKO, PHILIP
To: EMC CORPORATION
Reel/Frame 040604/0392 →