IP Library Granted Patent US 7,627,612
Granted Patent B2
US 7,627,612 · App. 11/536,233 · Granted Dec 1, 2009

Methods and apparatus for optimal journaling for continuous data replication

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 7,627,612
App. No.
11/536,233
Granted
Dec 1, 2009
Kind
B2
Abstract

Methods and systems for continuous data replication, including receiving a write transaction from a production site, the write transaction including raw data (RWNEW), a size indicator (SZ 1 ) for the size of the raw data, and a start address (ADD 1 ) for writing the raw data, copying the raw data (RWNEW) into a first journal data stream at a current journal address (JADD 1 ), and copying the size indicator (SZ 1 ), the start address (ADD 1 ) and the journal address (JADD 1 ) into a first journal meta-data stream.

Claims (55)

1. A method of replicating data, comprising:

(a) receiving transactions comprising write data from a first data site to be backed tip at a backup storage site;

(b) writing the write data to a first position in a do data stream;

(c) writing metadata for the write data to a first position in a do metadata stream, wherein the metadata for the write data in step (c) comprises a first field to store a size of the write data, a second field to store an address at which the write data is to be stored in the backup storage site and a third field to store a pointer to an offset in the do data stream where the write data is located;

(d) reading data from a second position in the do data stream;

(e) reading metadata from a second position in the do metadata stream;

(f) reading data to be overwritten from a logical unit in the backup storage site, where location and size of the data to be overwritten is determined from the do metadata stream;

(g) writing the data to be overwritten to a first position in an undo data stream;

(h) writing metadata for the data to be overwritten to an undo metadata stream, the metadata for the data to be overwritten comprises a first field to store a size of the data to be overwritten, a second field to store an address at which the data is to be overwritten in the backup storage site and a third field to store a pointer to an offset in the undo data stream where the data to be overwritten is located; and

(i) writing the write data to the logical unit in the backup storage site using the second field in the do metadata stream.

2. The method according to claim 1 , further including undoing a write transaction by:

(j) reading data from the first position in the undo data stream and metadata from the first position in the undo metadata stream;

(k) reading data from the logical unit in the backup storage site that is to be overwritten, wherein location and size of the data is determined from the undo metadata stream;

(l) writing the data read from the logical unit in the backup storage site in step (k) to the second position of the do data stream;

(m) updating the do metadata stream;

(n) writing the data from the first position of the undo data stream to the logical unit in the backup storage site; and

(o) writing the metadata from the first position of the undo metadata stream to the logical unit in the backup storage site.

3. The method according to claim 1 , further including

omitting steps (d) and (e) where a number of the write data transactions from the first data site to be backed up per unit time is less than a predetermined amount.

4. The method according to claim 3 , further including performing steps (d) and (e) again when a queue memory is more than a given percent full.

5. The method according to claim 1 , further including omitting steps (f), (g), and (h) when a size of the do data stream is greater than a given value.

6. The method according to claim 1 , further including omitting steps associated with the undo data stream and undo metadata stream when the do data stream becomes larger than a given value.

7. The method according to claim 1 , further including providing a state machine to transition between a number of states having a given number of processing stages, wherein

a first state includes steps (a)-(i);

a second state includes omitting steps (d) and (e) where a number of the write data transactions from the first data site to be backed up per unit time is less than a predetermined amount; and

a third state includes omitting steps (f), (g), and (h) when a size of the do data stream is greater than a given value.

8. The method according to claim 7 , wherein the state machine has three nodes.

9. The method according to claim 1 , further including omitting steps (b)-(e) to provide a state in a state machine for transitioning between a number of states having a given number of processing stages.

10. An article, comprising:

a storage medium having stored thereon instructions that when executed by a machine result in the following:

(a) receiving write data transactions from a first data site to be backed up at a backup storage site;

(b) writing the write data to a first position in a do data stream;

(c) writing metadata for the write data to a first position in a do metadata stream, wherein the metadata for the write data in step (c) comprises a first field to store a size of the write data, a second field to store an address at which the write data is to be stored in the backup storage site and a third field to store a pointer to an offset in the do data stream where the write data is located;

(d) reading data from a second position in the do data stream;

(e) reading metadata from a second position in the do metadata stream;

(f) reading data to be overwritten from a logical unit in the backup storage site, where location and size of the data to be overwritten is determined from the do metadata stream;

(g) writing the data to be overwritten to a first position in an undo data stream;

(h) writing metadata for the data to be overwritten to an undo metadata stream, the undo metadata comprises a first field to store a size of the data to be overwritten, a second field to store an address at which the data is to be overwritten in the backup storage site and a third field to store a pointer to an offset in the undo data stream where the data to be overwritten is located; and

(i) writing the write data to the logical unit in the backup storage site using the second field in the do metadata stream.

11. The article according to claim 10 , further including instructions for undoing a write transaction by:

(j) reading data from the first position in the undo data stream and metadata from the first position in the undo metadata stream;

(k) reading data from logical unit in the backup storage site that is to be overwritten, wherein location and size of the data is determined from the undo metadata stream;

(l) writing the data read from the logical unit in the backup storage site in step (k) to the second position of the do data stream;

(m) updating the do metadata stream;

(n) writing the data from the first position of the undo data stream to the logical unit in the backup storage site; and

(o) writing the metadata from the first position of the undo metadata stream to the logical unit in the backup storage site.

12. The article according to claim 10 , further including instructions for

omitting steps (d) and (e) where a number of the write data transactions from the first data site to be backed up per unit time is less than a predetermined amount.

13. The article according to claim 12 , further including instructions for performing steps (d) and (e) again when a queue memory is more than a given percent full.

14. The article according to claim 10 , further including instructions for omitting steps (f), (g), and (h) when a size of the do data stream is greater than a given value.

15. The article according to claim 10 , further including instructions for omitting steps associated with the undo data stream and undo metadata stream when the do data stream becomes larger than a given value.

16. The article according to claim 10 , further including instructions providing a state machine to transition between a number of states having a given number of processing stages, wherein

a first state includes steps (a)-(i);

a second state includes omitting steps (d) and (e) where a number of the write data transactions from the first data site to be backed up per unit time is less than a predetermined amount; and

a third state includes omitting steps (f), (g), and (h) when a size of the do data stream is greater than a given value.

Assignments (11)
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: DELL USA L.P.; ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; 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 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 →
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 Sep 10, 2016
From: EMC ISRAEL DEVELOPMENT CENTER, LTD.
To: EMC CORPORATION
Reel/Frame 039990/0927 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 2, 2016
From: EMC ISRAEL DEVELOPMENT CENTER, LTD.
To: EMC CORPORATION
Reel/Frame 039619/0697 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2007
From: AHAL, SHLOMO; NATANZON, ASSAF; SECHNER, TZACH; KEDEM, ODED; DRUKH, EVGENY
To: EMC ISRAEL DEVELOPMENT CENTER, LTD.
Reel/Frame 018974/0302 →