IP Library Granted Patent US 8,924,668
Granted Patent B1
US 8,924,668 · App. 13/336,380 · Granted Dec 30, 2014

Method and apparatus for an application- and object-level I/O splitter

Inventor: Assaf Natanzon (Ramat Gan, IL)
Assignee: EMC Corporation
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,924,668
App. No.
13/336,380
Filed
Dec 23, 2011
Granted
Dec 30, 2014
Kind
B1
Examiner
GU, SHAWN X
Art Unit
2138
USPC
711/162
Abstract

Example embodiments of the present invention relate to a method, an apparatus and a computer-program product for replicating logical level commands. The method comprises intercepting a logical level command at a splitter at a production site and creating a replica of the logical level command at the production site. The replica of the logical level command is then transmitted from the production site to a replication site.

Claims (63)

1. A method comprising:

intercepting a logical level command at a splitter at a production site;

creating a replica of the logical level command at the production site;

transmitting the replica of the logical level command toward a replication site;

receiving the replica of the logical level command at the replication site;

writing the replica of the logical level command to a journal at the replication site; and

advancing a data storage state of the replication site forward to a particular data storage state at a particular point in time by reading logical level commands from a redo log of the journal and determining whether an inverse command for each of the logical level commands exists.

2. The method of claim 1 wherein the intercepted logical level command is selected from a group consisting of file system operations, database operations and block operations.

3. The method of claim 1 further comprising:

if an inverse command exists for each logical level command, then for each logical level command:

creating an inverse operation of the logical level command;

writing the inverse operation of the logical level command to an undo log of the journal;

applying the logical level command at the replication site; and

deleting the logical level command from the redo log.

4. The method of claim 1 further comprising:

if an inverse command does not exist for at least one logical level command:

taking a snapshot of the replication site;

storing the snapshot at the replication site; and

applying the logical level commands at the replication site.

5. The method of claim 1 further comprising restoring a data storage state of the replication site backward to a particular data storage state at a second particular point in time, comprising:

reading logical level commands from an undo log of the journal up to the second particular point in time; and

determining whether an inverse command for each of the logical level commands exists.

6. The method of claim 5 further comprising:

if an inverse command exists for each logical level command, then for each logical level command:

creating an inverse operation of the logical level command;

writing the inverse operation of the logical level command to a redo log of the journal;

applying the logical level command at the replication site; and

deleting the logical level command from the undo log.

7. The method of claim 5 further comprising:

if an inverse command does not exist for at least one logical level command:

selecting a snapshot taken at a point in time before a desired time;

reverting the selected snapshot; and

applying logical level commands from a redo log of the journal up to the desired time.

8. The method of claim 7 further comprising:

deleting old commands from the redo log as commands are written to the redo log when the redo log is full; and

deleting snapshots relating to points in time for which commands were deleted from the redo log.

9. The method of claim 1 further comprising initializing the replication site, comprising:

taking a snapshot at the production site;

copying the snapshot of the production site to the replication site; and

writing the replica of the logical level command to the journal at the replication site.

10. The method of claim 1 wherein transmitting the replica of the logical level command to the replication site comprises:

sending the replica of the logical level command from the splitter at the production site to a data protection appliance at the production site; and

forwarding the intercepted logical level command from the data protection appliance at the production site to a data protection appliance at the replication site for applying at the replication site.

11. A system comprising:

a replication site;

a production site comprising a logical level splitter configured to intercept a logical level command, create a replica of the logical level command, and transmit the replica of the logical level command toward the replication site;

a data protection appliance at the replication site configured to receive the replica of the logical level command, write the replica of the logical level command to a journal at the replication site, and advance a data storage state of the replication site forward to a particular data storage state at a particular point in time by reading logical level commands from a redo log of the journal and determining whether an inverse command for each of the logical level commands exists.

12. The system of claim 11 wherein the intercepted logical level command is selected from a group consisting of file system operations, database operations and block operations.

13. The system of claim 11 further comprising a player at the replication site configured to, if an inverse command exists for each logical level command, for each logical level command, create an inverse operation of the logical level command, write the inverse operation of the logical level command to an undo log of the journal, apply the logical level command at the replication site, and delete the logical level command from the redo log.

14. A The system of claim 11 further comprising a player at the replication site configured to, if an inverse command does not exist for at least one logical level command, take a snapshot of the replication site, store the snapshot at the replication site, and apply the logical level commands at the replication site.

15. The system of claim 11 further comprising the data protection appliance configured to restore a data storage state of the replication site backward to a particular data storage state at a particular point in time by reading logical level commands from an undo log of the journal up to a desired time and determining whether an inverse command for each of the logical level commands exists.

16. The system of claim 15 further comprising a player at the replication site configured to, if an inverse command exists for each logical level command, then for each logical level command create an inverse operation of each logical level command, write the inverse operation of the logical level command to a redo log of the journal, apply the logical level command at the replication site, and delete the logical level command from the undo log.

17. The method of claim 15 further comprising a player at the replication site configured to, if an inverse command does not exist for at least one logical level command, select a snapshot taken at a point in time before the desired time, revert the selected snapshot, and apply logical level commands from a redo log of the journal up to the desired time.

18. The method of claim 17 wherein the data protection appliance is further configured to delete old commands from the redo log as commands are written to the redo log when the redo log is full and delete snapshots relating to points in time for which commands were deleted from the redo log.

19. The system of claim 11 further comprising a data protection appliance at the production site configured to initialize the replication site by taking a snapshot at the production site, copying the snapshot of the production site to the replication site, and writing the replica of the logical level command to the journal at the replication site.

20. The system of claim 11 wherein the logical level splitter is further configured to send the replica of the logical level command to a data protection appliance at the production site and forward the intercepted logical level command from the data protection appliance at the production site to the data protection appliance at the replication site for applying at the replication site.

21. A computer program product having a non-transitory computer readable storage medium with instructions encoded thereon that, when executed by a processor of a computer, causes the computer to:

intercept a logical level command at a splitter at a production site;

create a replica of the logical level command at the production site;

transmit the replica of the logical level command toward a replication site;

receive the replica of the logical level command at the replication site;

write the replica of the logical level command to a journal at the replication site; and

advance a data storage state of the replication site forward to a particular data storage state at a particular point in time by reading logical level commands from a redo log of the journal and determining whether an inverse command for each of the logical level commands exists.

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: 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 →
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 Jul 22, 2013
From: EMC INTERNATIONAL COMPANY
To: EMC CORPORATION
Reel/Frame 030847/0412 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 24, 2013
From: NATANZON, ASSAF
To: EMC INTERNATIONAL COMPANY
Reel/Frame 030479/0841 →