IP Library Granted Patent US 8,930,309
Granted Patent B2
US 8,930,309 · App. 13/408,892 · Granted Jan 6, 2015

Interval-controlled replication

Inventor: Prasanta R. Dash (San Jose, CA)
Assignee: Symantec Corporation
G06F17/30348
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,930,309
App. No.
13/408,892
Filed
Feb 29, 2012
Granted
Jan 6, 2015
Kind
B2
Art Unit
2159
USPC
707/611
Abstract

Various systems and methods for interval-controlled replication are described. For example, one method involves a node receiving a first interval indication indicating start of a first interval. After receiving the first interval indication, an application on the node initiates a first write, which includes the node initiating a first local write and a first remote write. The first local write accesses a local storage. The first remote write accesses a remote storage and replicates the first local write. The node waits for acknowledgements indicating that the local and remote writes have finished, as well as for a second interval indication, before the first write from the application is treated being complete.

Claims (138)

1. A method, comprising:

receiving, at a local node,

a first write from an application, and

a first interval indication, wherein

the first interval indication indicates a start of a first interval, and

the first interval indication is one of a plurality of interval indications;

first initiating, at the local node, a first local write, a first remote write, and a second remote write, wherein

the first initiating is performed in response to receipt of the first interval indication,

the first local write accesses a local storage of the local node,

the first local write is based on the first write,

the first remote write accesses a first remote storage,

the first remote write replicates the first local write,

the second remote write accesses a second remote storage, and

the second remote write replicates the first local write;

receiving, at the local node, a first remote write acknowledgement, wherein

the first remote write acknowledgement indicates that the first remote storage completed the first remote write;

receiving, at the local node, a second remote write acknowledgement, wherein

the second remote write acknowledgement indicates that the second remote storage completed the second remote write;

receiving a second interval indication of the plurality of interval indications; and

acknowledging a completion of the first remote write and a completion of the second remote write, wherein

the acknowledging of each completion is communicated to the application, and

the acknowledging is performed in response to receipt of the first remote write acknowledgement, the second remote write acknowledgement, and the second interval indication.

2. The method of claim 1 , wherein

a plurality of nodes comprises a first node, and

the first node performs the acknowledging in response to determining that each of the plurality of nodes have received the second interval indication.

3. The method of claim 2 , wherein

determining that each of the plurality of nodes have received the second interval indication comprises

receiving an acknowledgement that each of the plurality of nodes has received the second interval indication.

4. The method of claim 1 , wherein

the first remote write has a first associated time stamp, and

the first associated time stamp indicates the first interval.

5. The method of claim 1 , further comprising:

determining a new interval if the first local write and the first remote write have completed before receiving the second interval indication.

6. The method of claim 1 , further comprising:

sending a first interval acknowledgement, wherein

the first interval acknowledgement indicates receipt of the first interval indication.

7. The method of claim 1 , wherein

the first initiating is performed further in response to the receiving the first write, and

the first write accesses a first data;

and further comprising:

receiving a second write from the application, wherein

the application is configured to issue the second write in response to the acknowledging,

the second write accesses a second data, and

the second data is dependent on the first data.

8. The method of claim 1 , wherein

the first remote write accesses a first data,

the second remote write accesses a second data, and

the second data is dependent on the first data.

9. The method of claim 1 , further comprising:

second initiating a third local write to the local storage and a third remote write to a third remote storage, wherein

the third remote write replicates the third local write,

the second initiating is performed in response to receipt of the first interval indication,

the first remote write accesses a first data,

the third remote write accesses a second data, and

the second data is independent of the first data.

10. The method of claim 1 , further comprising:

determining if a first node has not responded to a first amount of the plurality of interval indications;

in response to a determination that the first node has not responded to the first amount of the plurality of interval indications, indicating in interval indications that the first node is unresponsive.

11. The method of claim 10 , further comprising:

determining if the first node responds to interval indications after a delay, and

in response to a determination that the first node responds to the interval indications, processing any remote writes performed by the first node during the delay.

12. The method of claim 1 , further comprising:

determining whether a first node is accessing certain data, wherein the certain data comprises a first data dependency characteristic;

in response to a determination that the first node is accessing the certain data, the first node performing batch processing of the certain data.

13. The method of claim 1 , wherein

in response to receiving the acknowledging of the completion, the application is configured to complete a first application write, wherein

the first write is based on the first application write, and

the application is configured to complete the first application write during a second interval.

14. A system comprising:

an application, wherein

the application is configured to issue a first write,

a management module, wherein

the management module is configured to

receive, at a local node, a first interval indication, wherein

the first interval indication indicates a start of a first interval,

initiate, at the local node, a first local write, a first remote write, and a second remote write, wherein

the first local write is based on the first write,

the management module performs the initiating in response to

 the application issuing the first write, and

 the management module receiving the first interval indication,

the first remote write accesses a first remote storage, and

the second remote write access a second remote storage,

receive, at the local node, a second interval indication, wherein

the second interval indication indicates a start of a second interval,

receive, at the local node, a first remote write acknowledgement, wherein

the first remote write acknowledgement indicates that the first remote storage completed the first remote write,

receive, at the local node, a second remote write acknowledgement, wherein

the second remote write acknowledgement indicates

that the second remote storage complete the second remote write:

and

acknowledge that the first remote write and the second remote write are completed, wherein

the management module performs the acknowledging of the first write and the acknowledging of the second write in response to

 receiving the second interval indication,

 receiving the first remote write acknowledgement, and

 receiving the second remote write acknowledgement; and

the management module performs the acknowledging to the application.

15. The system of claim 14 , wherein

the application is configured to issue to a second write in response to receiving acknowledgement of the first write from the management module.

16. The system of claim 14 , wherein

a plurality of nodes comprises the system,

the management module performs the acknowledging of the first write in further response to

determining that each of the plurality of nodes have received the second interval indication.

17. The system of claim 14 , wherein

the management module is further configured to send a first interval acknowledgement, wherein

the first interval acknowledgement indicates that the management module received the first interval indication.

18. A computer program product comprising:

a plurality of instructions, comprising

a first set of instructions, executable on a computer system, configured to receive a first interval indication, wherein

the first interval indication indicates a start of a first interval,

the first interval indication is one of a plurality of interval indications,

a second set of instructions, executable on the computer system, configured to initiate a first local write, a first remote write, and a second remote write, wherein

the first local write is based on a first write,

the first write is received from an application,

the initiating is performed in response to receipt of the first interval indication,

the first local write accesses a local storage,

the first remote write accesses a first remote storage,

the first remote write replicates the first local write,

the second remote write accesses a second remote storage, and

the second remote write replicates the first local write,

a third set of instructions, executable on the computer system, configured to receive a first remote write acknowledgement, wherein

the first remote write acknowledgement indicates that the first remote storage completed the first remote write,

a fourth set of instructions, executable on the computer system, configured to receive a second remote write acknowledgement, wherein

the second remote write acknowledgement indicates that the second remote storage completed the second remote write,

a fifth set of instructions, executable on the computer system, configured to

receive a second interval indication of the plurality of interval indications, and

a sixth set of instructions, executable on the computer system, configured to acknowledge that the first remote write and the second remote write have completed in response to receipt of the first remote write acknowledgement, the second remote write acknowledgement, and the second interval indication, wherein

the acknowledgement of the completion is communicated to the application; and

a computer-readable storage medium, wherein the instructions are encoded in the computer-readable storage medium.

19. The computer program product of claim 18 , wherein

each of the first remote write and the first local write has a first associated time stamp, and

the first associated time stamp indicates the first interval.

20. The computer program product of claim 18 , wherein

determining that each of a plurality of nodes have received the second interval indication comprises

receiving an acknowledgement that each of the plurality of nodes have received the second interval indication.

21. The computer program product of claim 18 , wherein

the plurality of instructions further comprises a seventh set of instructions, executable on a computer system, configured to

send a first interval acknowledgement, wherein

the first interval acknowledgement indicates receipt of the first interval indication.

Assignments (10)
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 1, 2012
From: DASH, PRASANTA R.
To: SYMANTEC CORPORATION
Reel/Frame 027787/0487 →
Continuity (1)
Related Publication 20130226870A1 · Aug 29, 2013