IP Library Granted Patent US 10,244,069
Granted Patent B1
US 10,244,069 · App. 14/998,102 · Granted Mar 26, 2019

Accelerated data storage synchronization for node fault protection in distributed storage system

Inventors: Adrian Michaud (Carlisle, MA); Randall Shain (Wrentham, MA); John S. Harwood (Paxton, MA); Kenneth J. Taylor (Franklin, MA); Stephen Wing-Kin Au (Norwood, MA)
Assignee: EMC IP Holding Company LLC
H04L67/2842G06F12/0813G06F12/0815H04L67/104H04L67/1095G06F2212/154G06F2212/621
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,244,069
App. No.
14/998,102
Filed
Dec 24, 2015
Granted
Mar 26, 2019
Kind
B1
Art Unit
2457
USPC
709/213
Abstract

Systems, methods, and articles of manufacture comprising processor-readable storage media are provided for implementing an accelerated data storage synchronization to protect data in a storage system. For example, a first server node accesses a data block from a protected storage system in response to a request from an application executing on the first server node. A modified data block is written to a write-back cache of the first server node. A synchronization operation is performed in response to a request by the application, which includes sending a copy of the modified data block in the write-back cache to a second server node to temporarily store the copy of the modified data block in a storage media of the second server node, and informing the application that the synchronization operation is deemed complete after the copy of the modified data block is stored in the storage media of the second server node.

Claims (68)

1. A method for managing memory, comprising:

accessing, by a first server node, a data block from a protected data block storage system in response to a request for the data block from an application executing on the first server node;

writing, by the first server node, a modified data block to a write-back cache that is implemented in system memory residing on the first server node, wherein the modified data block comprises a modified version of the accessed data block which is generated by the application modifying the accessed data block;

protecting the modified data block for write-back to the protected data block storage system by the first server node performing a storage synchronization operation in response to a storage synchronization request by the application, wherein the storage synchronization operation comprises:

the first server node sending a copy of the modified data block in the write-back cache to a second server node to temporarily store the copy of the modified data block in storage media locally residing on the second server node, wherein said storage media is separate from the protected data block storage system;

the first server node informing the application that the storage synchronization operation is deemed complete at least with respect to the modified data block in the write-back cache, in response to the copy of the modified data block being stored in said storage media locally residing on the second server node; and

the first server node marking the modified data block in the write-back cache as being protected, in response to the synchronization operation being deemed complete; and

initiating, by the first server node, an asynchronous write-back operation to store a copy of the modified data block in the write-back cache, which is marked as being protected, in the protected data block storage system.

2. The method of claim 1 , wherein the copy of the modified data block is sent from the first server node to the second server node over a dedicated communication link between the first and second server nodes, which is separate from a communications network used by the first and second server nodes for peer-to-peer communication.

3. The method of claim 1 , further comprising:

marking, by the first server node, the modified data block in the write back cache as unmodified, after the copy of the modified data block is stored in the protected data block storage system; and

causing, by the first server node, the copy of the modified data block in said storage media locally residing on the second server node to be invalidated.

4. The method of claim 1 , wherein the asynchronous write-back operation comprises:

determining at least two locations in the protected data storage system which correspond to the modified data block; and

causing the copy of the modified data block in the write-back cache to be stored in the at least two locations in the protected data storage system.

5. The method of claim l, wherein performing the storage synchronization operation by the first server node further comprises:

utilizing, by the first server node, a remote direct memory access protocol for remotely controlling the storage media locally residing on the second server node;

wherein remotely controlling the storage media comprises:

writing the copy of the modified data block in the storage media locally residing on the second server node; and

invalidating copies of one or more other modified data blocks previously stored in the storage media locally residing on the second server node.

6. The method of claim 1 , wherein performing the storage synchronization operation by the first server node further comprises the first server node sending a message together with the copy of the modified data block to the second server node, wherein the message indicates which copies of one or more other modified data blocks previously stored in the storage media locally residing on the second server node can be invalidated and overwritten.

7. The method of claim 1 , wherein performing the storage synchronization operation by the first server node further comprises:

determining, by the first server node, an available storage capacity of the storage media locally residing on the second server node; and

causing one or more modified data blocks in the write-back cache to be sent to the second server node synchronously with storing all modified data blocks in the write-back cache to corresponding locations in the protected data block storage system;

wherein the one or more modified data blocks sent to the second server node do not exceed the determined available storage capacity of the storage media locally residing on the second server node.

8. The method of claim 1 , wherein the first and second server nodes implement a peer-to-peer server cluster system, and wherein the protected data block storage system comprises at least one of a cluster of DAS (direct attached storage) devices, a SAN (storage area network) comprising a cluster of storage media devices, and a virtual SAN comprising a cluster of storage media devices.

9. The method of claim 1 , wherein said storage media locally residing on the second server node comprises system memory of the second server node.

10. An article of manufacture comprising a processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code is executable by one or more processors to execute a process comprising:

accessing, by a first server node, a data block from a protected data block storage system in response to a request for the data block from an application executing on the first server node;

writing, by the first server node, a modified data block to a write-back cache that is implemented in system memory residing on the first server node, wherein the modified data block comprises a modified version of the accessed data block which is generated by the application modifying the accessed data block;

protecting the modified data block for write-back to the protected data block storage system by the first server node performing a storage synchronization operation in response to a storage synchronization request by the application, wherein the storage synchronization operation comprises:

the first server node sending a copy of the modified data block in the write-back cache to a second server node to temporarily store the copy of the modified data block in storage media locally residing on the second server node, wherein said storage media is separate from the protected data block storage system;

the first server node informing the application that the storage synchronization operation is deemed complete at least with respect to the modified data block in the write-back cache, in response to the copy of the modified data block being stored in said storage media locally residing on the second server node; and

the first server node marking the modified data block in the write-back cache as being protected, in response to the synchronization operation being deemed complete; and

initiating, by the first server node, an asynchronous write-back operation to store a copy of the modified data block in the write-back cache, which is marked as being protected, in the protected data block storage system.

11. The article of manufacture of claim 10 , wherein the copy of the modified data block is sent from the first server node to the second server node over a dedicated communication link between the first and second server nodes, which is separate from a communications network used by the first and second server nodes for peer-to-peer communication.

12. The article of manufacture of claim 10 , further comprising program code which is executable by the one or more processors to execute a process comprising:

marking, by the first server node, the modified data block in the write-back cache as unmodified, after the copy of the modified data block is stored in the protected data block storage system; and

causing, by the first server node, the copy of the modified data block in said storage media locally residing on the second server node to be invalidated.

13. The article of manufacture of claim 10 , wherein the program code to perform the storage synchronization operation by the first server node further comprises program code that is executable by the one or more processors to execute a process comprising:

utilizing, by the first server node, a remote direct memory access protocol for remotely controlling the storage media locally residing on the second server node;

wherein remotely controlling the storage media comprises:

writing the copy of the modified data block in the storage media locally residing on the second server node; and

invalidating copies of one or more other modified data blocks previously stored in the storage media locally residing on the second server node.

14. The article of manufacture of claim 10 , wherein the program code to perform the storage synchronization operation by the first server node further comprises program code that is executable by the one or more processors to execute a process comprising:

the first server node sending a message together with the copy of the modified data block to the second server node, wherein the message indicates which copies of one or more other modified data blocks previously stored in the storage media locally residing on the second server node can be invalidated and overwritten.

15. The article of manufacture of claim 10 , wherein said storage media locally residing on the second server node comprises system memory of the second server node.

16. A computing system, comprising:

first server node comprising system memory residing on the first server node, wherein the first server node comprises a write-back cache implemented in the system memory; and

a protected data block storage system coupled to the first server node;

wherein the first server node is configured to execute a process comprising:

accessing a data block from a protected data block storage system in response to a request for the data block from an application executing on the first server node;

writing a modified data block to the write-back cache that is implemented in the system memory residing on the first server node, wherein the modified data block comprises a modified version of the accessed data block which is generated by the application modifying the accessed data block;

protecting the modified data block for write-back to the protected data block storage system by performing a storage synchronization operation in response to a storage synchronization request by the application, wherein the storage synchronization operation comprises:

sending a copy of the modified data block in the write-back cache to a second server node of the computing system to temporarily store the copy of the modified data block in storage media locally residing on the second server node, wherein said storage media is separate from the protected data block storage system;

informing the application that the storage synchronization operation is deemed complete at least with respect to the modified data block in the write-back cache, in response to the copy of the modified data block being stored in said storage media locally residing on the second server node; and

marking the modified data block in the write-back cache as being protected, in response to the synchronization operation being deemed complete; and

initiating an asynchronous write-back operation to store a copy of the modified data block in the write-back cache, which is marked as being protected, in the protected data block storage system.

17. The system of claim 16 , wherein the copy of the modified data block is sent from the first server node to the second server node over a dedicated communication link between the first and second server nodes, which is separate from a communications network used by the first and second server nodes for peer-to-peer communication.

18. The system of claim 16 , wherein the first server node is further configured to execute a process comprising:

marking the modified data block in the write-back cache as unmodified, after the copy of the modified data block is stored in the protected data block storage system; and

causing the copy of the modified data block in said storage media locally residing on the second server node to be invalidated.

19. The system of claim 16 , wherein in performing the storage synchronization operation, the first server node is further configured to execute a process comprising:

utilizing a remote direct memory access protocol for remotely controlling the storage media locally residing on the second server node;

wherein remotely controlling the storage media comprises:

writing the copy of the modified data block in the storage media locally residing on the second server node; and

invalidating copies of one or more other modified data blocks previously stored in the storage media locally residing on the second server node.

20. The computing system of claim 16 , wherein said storage media locally residing on the second server node comprises system memory of the second server node.

Assignments (11)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (050724/0466) Recorded Jun 23, 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 060753/0486 →
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 (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
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 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 15, 2019
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 050724/0466 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 11, 2016
From: MICHAUD, ADRIAN; SHAIN, RANDALL; HARWOOD, JOHN S.; TAYLOR, KENNETH J.; AU, STEPHEN WING-KIN
To: EMC CORPORATION
Reel/Frame 037957/0042 →
Cited By (2)
US 12,282,678 US 12,386,765