IP Library Granted Patent US 10,019,194
Granted Patent B1
US 10,019,194 · App. 15/274,122 · Granted Jul 10, 2018

Eventually consistent synchronous data replication in a storage system

Inventors: Leehod Baruch (Rishon Leziyon, IL); Assaf Natanzon (Tel Aviv, IL); Jehuda Shemer (Kfar Saba, IL); Amit Lieberman (Raanana, IL); Ron Bigman (Holon, IL)
Assignee: EMC IP HOLDING COMPANY LLC
G06F3/065G06F3/067G06F3/0611G06F3/0619G06F3/0644G06F3/0659
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,019,194
App. No.
15/274,122
Granted
Jul 10, 2018
Kind
B1
Abstract

Described embodiments provide systems and methods for operating a storage system. One or more production volumes of the storage system are selected for continuous replication. A number, N, is selected that is associated with a number of damaged volumes the storage system can sustain and maintain data consistency. Write transactions from a host to an associated one of the selected one or more production volumes are intercepted. The intercepted write transactions are sent to the associated production volume and to a plurality of copy volumes. When acknowledgments of the write transaction have been received from N copy volumes, the write transaction is acknowledged to the host.

Claims (58)

1. A method comprising:

selecting one or more production volumes of a storage system for continuous replication;

selecting a number, N, associated with a number of damaged volumes the storage system can sustain and maintain data consistency;

intercepting one or more write transactions from a host to an associated one of the selected one or more production volumes;

sending the intercepted one or more write transactions to the associated production volume and to a plurality of copy volumes;

when acknowledgments of the one or more write transactions have been received from N copy volumes, acknowledging the one or more write transactions to the host;

assigning each of the intercepted one or more write transactions a unique transaction number, the transaction number monotonically increasing based upon an order in which the intercepted one or more write transactions are intercepted; and

verifying one or more of the plurality of copy volumes as synchronized with an associated production volume based upon the transaction numbers of the intercepted one or more write transactions written to each of the copy volumes.

2. The method of claim 1 , wherein verifying one or more copy volumes as synchronized with an associated production volume comprises:

determining a highest transaction number written to each copy volume;

determining one or more copy volumes having a highest transaction number; and

indicating the determined one or more copy volumes as being synchronized with the associated production volume.

3. The method of claim 1 , wherein an acknowledgment of a write transaction having an associated transaction number implies acknowledgment of write transactions having transactions numbers lower than the associated transaction number.

4. The method of claim 1 , further comprising:

determining one or more write transactions received by all the copy volumes;

tracking metadata associated with write transactions received by fewer than all the copy volumes; and

generating at least one synchronous copy volume based upon the tracked metadata and the one or more write transactions received by all the copy volumes.

5. The method of claim 4 , wherein the metadata is tracked in one or more DO METADATA journals, each journal associated with a given copy volume, and wherein generating at least one synchronous copy volume based upon the tracked metadata and the one or more write transactions received by all the copy volumes comprises merging the DO METADATA of each copy volume with the write transactions that were received by all the copy volumes.

6. The method of claim 1 , wherein N is an integer greater than zero and less than or equal to a sum of a number of production volumes and a number of copy volumes of the storage system.

7. The method of claim 1 , further comprising receiving acknowledgments to the write transaction from one or more additional copy volumes as a background process while processing new write transactions.

8. A system comprising:

a processor; and

memory storing computer program code that when executed on the processor causes the processor to operate a storage system, the storage system operable to perform the operations of:

selecting one or more production volumes of a storage system for continuous replication;

selecting a number, N, associated with a number of damaged volumes the storage system can sustain and maintain data consistency, wherein N is an integer greater than zero and less than or equal to a sum of a number of production volumes and a number of copy volumes of the storage system;

intercepting one or more write transactions from a host to an associated one of the selected one or more production volumes;

sending the intercepted one or more write transactions to the associated production volume and to the copy volumes; and

when acknowledgments of the one or more write transactions have been received from N copy volumes, acknowledging the one or more write transactions to the host;

assigning each of the intercepted one or more write transactions a unique transaction number, the transaction number monotonically increasing based upon an order in which the one or more write transactions are intercepted; and

verifying one or more of the plurality of copy volumes as synchronized with an associated production volume based upon the transaction numbers of write transactions written to each of the copy volumes.

9. The system of claim 8 , wherein the storage system is further operable to perform the operations of:

determining a highest transaction number written to each copy volume;

determining one or more copy volumes having a highest transaction number; and

indicating the determined one or more copy volumes as being synchronized with the associated production volume.

10. The system of claim 8 , wherein an acknowledgment of a write transaction having an associated transaction number implies acknowledgment of write transactions having transactions numbers lower than the associated transaction number.

11. The system of claim 8 , wherein the storage system is further operable to perform the operations of:

determining one or more write transactions received by all the copy volumes;

tracking metadata associated with write transactions received by fewer than all the copy volumes; and

generating at least one synchronous copy volume based upon the tracked metadata and the one or more write transactions received by all the copy volumes.

12. The system of claim 11 , wherein the metadata is tracked in one or more DO METADATA journals, each journal associated with a given copy volume, and wherein the storage system is further operable to perform the operation of merging the DO METADATA of each copy volume with the write transactions that were received by all the copy volumes.

13. The system of claim 8 , wherein the storage system is further operable to perform the operation of receiving acknowledgments to the write transaction from one or more additional copy volumes as a background process while processing new write transactions.

14. A computer program product including a non-transitory computer readable storage medium having computer program code encoded thereon that when executed on a processor of a computer causes the computer to operate a storage system, the computer program product comprising:

computer program code for selecting one or more production volumes of a storage system for continuous replication;

computer program code for selecting a number, N, associated with a number of damaged volumes the storage system can sustain and maintain data consistency, wherein N is an integer greater than zero and less than or equal to a sum of a number of production volumes and a number of copy volumes of the storage system;

computer program code for intercepting one or more write transactions from a host to an associated one of the selected one or more production volumes;

computer program code for sending the intercepted one or more write transactions to the associated production volume and to the copy volumes;

when acknowledgments of the one or more write transactions have been received from N copy volumes, computer program code for acknowledging the one or more write transactions to the host;

computer program code for assigning each of the intercepted one or more write transactions a unique transaction number, the transaction number monotonically increasing based upon an order in which the one or more write transactions are intercepted; and

computer program code for verifying one or more of the plurality of copy volumes as synchronized with an associated production volume based upon the transaction numbers of the one or more write transactions written to each of the copy volumes.

15. The computer program product of claim 14 , further comprising:

computer program code for determining a highest transaction number written to each copy volume;

computer program code for determining one or more copy volumes having a highest transaction number; and

computer program code for indicating the determined one or more copy volumes as being synchronized with the associated production volume.

16. The computer program product of claim 14 , wherein an acknowledgment of a write transaction having an associated transaction number implies acknowledgment of write transactions having transactions numbers lower than the associated transaction number.

17. The computer program product of claim 14 , further comprising:

computer program code for determining one or more write transactions received by all the copy volumes;

computer program code for tracking metadata associated with write transactions received by fewer than all the copy volumes; and

computer program code for generating at least one synchronous copy volume based upon the tracked metadata and the one or more write transactions received by all the copy volumes.

Assignments (8)
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 (047648/0422) 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
Reel/Frame 060160/0862 →
RELEASE OF SECURITY INTEREST AT REEL 047648 FRAME 0346 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058298/0510 →
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 Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047648/0346 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 047648/0422 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 4, 2016
From: BARUCH, LEEHOD; NATANZON, ASSAF; SHEMER, JEHUDA; LIEBERMAN, AMIT; BIGMAN, RON
To: EMC IP HOLDING COMPANY, LLC
Reel/Frame 039926/0901 →