IP Library Granted Patent US 8,073,922
Granted Patent B2
US 8,073,922 · App. 12/177,976 · Granted Dec 6, 2011

System and method for remote asynchronous data replication

Assignee: Twinstrata, Inc
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,073,922
App. No.
12/177,976
Filed
Jul 23, 2008
Granted
Dec 6, 2011
Kind
B2
Art Unit
2441
USPC
709/208
Abstract

An asynchronous peer-to-peer data replication method implemented within a replication cluster comprising at least one master node and at least a first client node includes entering an update in a data volume of the master node and storing the update in a master node storage. Next, updating a first active session in a master log and then sending a first message from the master node to the first client node. The first message comprises a first message content and first “piggybacked” data indicating that the first active session in the master log was updated. Next, receiving the first message by the first client node, registering that the first active session in the master log was updated and signaling internally that the first active session in the master log was updated. Next, sending an update request from the first client node to the master node, processing the update request by the master node and sending the update to the first client node. Finally, receiving the update by the first client node and updating the first active session in a first client log.

Claims (38)

1. An asynchronous data replication method comprising:

providing a replication cluster comprising at least one master node and at least a first client node, wherein said master node comprises a master log and said first client node comprises a first client log;

entering an update in a data volume of said master node and storing said update in a master node storage;

updating a first active session in said master log;

sending a first message from said master node to said first client node wherein said first message comprises a first message content and first “piggybacked” metadata indicating that said first active session in said master log was updated and is available to be transmitted upon request;

receiving said first message by said first client node, and upon reading said metadata, registering that said first active session in said master log was updated and signaling internally that said first active session in said master log was updated;

sending an update request from said first client node to said master node;

processing said update request by said master node and sending the update to said first client node; and

receiving the update by said first client node and updating said first active session in said first client log;

wherein said first active session comprises one or more segments and said master log comprises a master active session matrix storing all session segments for all cluster nodes and said first client log comprises a first client active session matrix storing all session segments for all cluster nodes.

2. The method of claim 1 wherein each of said session segments comprises an index and a timestamp and wherein said session matrices display all said session segment's indices and timestamps for all cluster nodes.

3. The method of claim 2 wherein said updating of said first active session comprises writing data in an extent structure and entering said extent structure into said first active session.

4. The method of claim 3 wherein said extent structure comprises a length larger than a session segment's length and wherein said extent structure is entered into more than one session segments.

5. The method of claim 4 wherein said processing of said update request by said master node comprises locating in said master active session matrix all session segments that have not yet been transmitted to said first client node log and sending said identified session segments to said first client node.

6. The method of claim 5 wherein said session segments that have not yet been transmitted to said first client node log are identified as session segments registered in a row of said master active session matrix corresponding to said first client node having a timestamp earlier than the timestamp of a most recently updated session segment in a row of said master active session matrix corresponding to said master node.

7. The method of claim 6 wherein said replication cluster comprises a second client node and wherein said second client node comprises a second client log and wherein said second client log comprises a second client active session matrix storing all session segments for all cluster nodes.

8. The method of claim 7 wherein said method further comprises sending a second message from said first client node to said second client node and wherein said second message comprises a second message content and second “piggybacked” metadata indicating that said first active session was updated and is available to be transmitted upon request.

9. The method of claim 8 further comprising:

receiving said second message by said second client node, and upon reading said second metadata registering that said first active session in said master log and said first client log was updated and signaling internally that said first active session was updated;

sending an update request from said second client node to said first client node;

processing said update request by said first client node and sending the update to said second client node; and

receiving the update by said second client node and updating said first active session in said second client log.

10. The method of claim 9 wherein any of said messages comprises one of a “health check” message sent periodically from said master node to any of said client nodes, a “health check” message sent periodically from any of said client nodes to said master node, a “health check” message sent periodically from any of said client nodes to other client nodes within the replication cluster.

11. The method of claim 1 further comprising completing said first active session in said master log.

12. The method of claim 11 further comprising completing said first active session in said first client log.

13. The method of claim 12 wherein said master log further comprises an authorization and access control protocol for each cluster node.

14. The method of claim 13 wherein said access control protocol comprise one of read-write, read-only, and replicate-only.

15. A data replication system for performing peer-to-peer data replication within a replication cluster comprising at least one master node and at least a first client node, wherein said master node comprises a computing device, a primary storage and a session storage and wherein said computing device comprises a data replication application configured to enter an update in a data volume of said master node and store said update in said master node primary storage, update a first active session in a master log stored in said session storage, send a first message from said master node to said first client node wherein said first message comprises a first message content and first “piggybacked” metadata indicating that said first active session in said master log was updated and is available to be transmitted upon request, and upon receipt of an update request from said first client node process the update request and send the requested update to the client node, wherein said first active session comprises one or more segments and said master log comprises a master active session matrix storing all session segments for all cluster nodes and said first client log comprises a first client active session matrix storing all session segments for all cluster nodes.

16. The data replication system of claim 15 wherein said first client node comprises a computing device, a primary storage and a session storage and wherein said computing device comprises a data replication application configured to receive said first message by said master node, register that said first active session in said master log was updated and signal internally in said client node that said first active session in said master log was updated, send an update request to said master node, receive the update from said master node and update said a first active session in a first client log stored in said session storage.

17. The data replication system of claim 15 each of said session segments comprises an index and a timestamp and wherein said session matrices display all said session segment's indices and timestamps for all cluster nodes.

18. The data replication system of claim 17 wherein said updating of said first active session comprises writing data in an extent structure and entering said extent structure into said first active session.

19. The data replication system of claim 18 wherein said extent structure comprises a length larger than a session segment's length and wherein said extent structure is entered into more than one session segments.

20. The data replication system of claim 19 wherein said processing of said update request by said master node comprises locating in said master active session matrix all session segments that have not yet been transmitted to said first client node log and sending said identified session segments to said first client node.

21. The data replication system of claim 20 wherein said session segments that have not yet been transmitted to said first client node log are identified as session segments registered in a row of said master active session matrix corresponding to said first client node having a timestamp earlier than the timestamp of a most recently updated session segment in a row of said master active session matrix corresponding to said master node.

22. The data replication system of claim 21 wherein said replication cluster comprises a second client node and wherein said second client node comprises a computing device, a primary storage and a session storage and wherein said computing device comprises a data replication application configured to receive a second message from said first client node, wherein said second message comprises a second message content and second “piggybacked” metadata indicating that said first active session was updated and is available to be transmitted upon request, register that said first active session in said master log and said first client log was updated and signal internally that said first active session was updated, send an update request to said first client node, receive the update and update said first active session in a second client log.

23. The data replication system of claim 22 wherein any of said messages comprise one of a “health check” message sent periodically from said master node to any of said client nodes, a “health check” message sent periodically from any of said client nodes to said master node, a “health check” message sent periodically from any of said client nodes to other client nodes within the replication cluster.

24. The data replication system of claim 23 wherein said master log further comprises an authorization and access control protocol for each cluster node.

25. The data replication system of claim 24 wherein said access control protocol comprise one of read-write, read-only, and replicate-only.

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 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.); 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.); 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 29, 2014
From: TWINSTRATA, INC.
To: EMC CORPORATION
Reel/Frame 033412/0797 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 6, 2010
From: BATES, JOHN
To: TWINSTRATA, INC
Reel/Frame 024189/0451 →
Continuity (2)
Provisional Application 60952538 · Jul 27, 2007
Related Publication 20090030986A1 · Jan 29, 2009