Performing data backups with a stochastic scheduler in a distributed computing environment
First Claim
1. A method for backing up data from a client to a server, the method comprising the computer-implemented steps of:
- at a first start time for performing a backup of said data from the client to the server, determining at the client whether there exists, between the client and the server, a connection that satisfies specified criteria; and
;
if there does not exist, between the client and the server, a connection that satisfies said specified criteria, then randomly selecting a second start time, within a certain time slice, to reattempt performance of said backup.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method for performing a data backup with a stochastic scheduler in a distributed computing environment are described. A data set on a client is tracked. The data set is to be maintained with a backup data set on a centralized server within the distributed computing environment. A time period during which to initiate a data backup session for the tracked data set is selected. An instance of a backup session application on the client is periodically executed. The client attempts to initiate a connection with the centralized server beginning at a random start time during the selected time period. The client regularly reattempts the connection initiation following each failed connection initiation attempt. The tracked data set is selectively copied into the backup data set upon a successful connection initiation. Upon each successful data backup session for the tracked data set, a new random start time within the selected time slice for a next data backup session is generated.
-
Citations
28 Claims
-
1. A method for backing up data from a client to a server, the method comprising the computer-implemented steps of:
-
at a first start time for performing a backup of said data from the client to the server, determining at the client whether there exists, between the client and the server, a connection that satisfies specified criteria; and
;
if there does not exist, between the client and the server, a connection that satisfies said specified criteria, then randomly selecting a second start time, within a certain time slice, to reattempt performance of said backup. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
at said first start time for performing a backup of said data from the client to the server, determining at the client whether the client is busy with tasks other than performing the backup; and
if the client is busy with tasks other than performing the backup, then generating a second start time by adding a specified amount of time to said first start time, and reattempting performance of said backup at said second start time.
-
-
3. The method of claim 1, wherein the step of determining at the client whether there exists, between the client and the server, a connection that satisfies specified criteria includes determining whether there exists, between the client and the server, a connection with bandwidth that exceeds a specified threshold.
-
4. The method of claim 1, further comprising the step of, upon successful completion of a backup operation, randomly selecting a start time within a time slice for attempting to perform another backup operation.
-
5. The method of claim 1, further comprising the steps of:
-
a first version of a client-side backup application detecting whether a second version of the client-side application resides on said server; and
if a second version of the client-side application resides on said server, then performing the steps of;
retrieving the second version of the client-side application to the client;
at said client, automatically swapping the second version of the client-side application with the first version of the client-side application; and
attempting to perform said backup using said second version of the client-side application.
-
-
6. The method of claim 5, further comprising the step of updating client-side backup applications for a plurality of clients by propagating instances of the second version of the client-side backup application from the server to each client of said plurality of clients.
-
7. The method of claim 5, wherein the step of detecting whether a second version of the client-side application resides on said server is carried out at the start of the performance of said backup.
-
8. The method of claim 1, further comprising the step of tracking data on said client to be backed up on the server, wherein said tracking includes:
maintaining an index of individual files within the data on the client, the index comprising a plurality of entries storing location and time data corresponding to each individual file.
-
9. The method of claim 8, further comprising the steps of:
-
deleting one or more files in the data set on the client;
marking the deletion of said files in the index; and
deferring removal of copies of said files from the server.
-
-
10. The method of claim 9, further comprising the step of retaining on the server copies of the deleted files pending expiration of a specified period in which said deleted files are not involved in any operation.
-
11. The method of claim 8, further comprising the step of, upon an interruption of the performance of a backup of the data, resuming the backup by reference to the index.
-
12. A method for backing up data from a client to a server, the method comprising the computer-implemented steps of:
-
at a first start time for performing a backup of said data from the client to the server, determining at the client whether there exists a condition for rescheduling said backup; and
if there exists a condition for rescheduling said backup, then if the condition is one of a first set of conditions, then randomly selecting a second start time, within a certain time slice, to reattempt performance of said backup; and
if the condition is one of a second set of conditions, then generating a second start time by adding a predetermined amount of time to said first start time, and reattempting performance of said backup at said second start time. - View Dependent Claims (13, 14)
-
-
15. A computer-readable medium carrying one or more sequences of instructions for backing up data from a client to a server which, when executed by one or more processors, causes the one or more processors to perform the steps of:
-
at a first start time for performing a backup of said data from the client to the server, determining at the client whether there exists, between the client and the server, a connection that satisfies specified criteria; and
;
if there does not exist, between the client and the server, a connection that satisfies said specified criteria, then randomly selecting a second start time, within a certain time slice, to reattempt performance of said backup. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25)
at said first start time for performing a backup of said data from the client to the server, determining at the client whether the client is busy with tasks other than performing the backup; and
if the client is busy with tasks other than performing the backup, then generating a second start time by adding a specified amount of time to said first start time, and reattempting performance of said backup at said second start time.
-
-
17. The computer-readable medium as recited in claim 15, wherein the step of determining at the client whether there exists, between the client and the server, a connection that satisfies specified criteria includes determining whether there exists, between the client and the server, a connection with bandwidth that exceeds a specified threshold.
-
18. The computer-readable medium as recited in claim 15, wherein the sequences of instructions further comprise instructions for carrying out the step of, upon successful completion of a backup operation, randomly selecting a start time within a time slice for attempting to perform another backup operation.
-
19. The computer-readable medium as recited in claim 15, wherein the sequences of instructions further comprise instructions for carrying out the steps of:
-
a first version of a client-side backup application detecting whether a second version of the client-side application resides on said server; and
if a second version of the client-side application resides on said server, then performing the steps of;
retrieving the second version of the client-side application to the client;
at said client, automatically swapping the second version of the client-side application with the first version of the client-side application; and
attempting to perform said backup using said second version of the client-side application.
-
-
20. The computer-readable medium as recited claim 19, wherein the sequences of instructions further comprise instructions for carrying out the step of updating client-side backup applications for a plurality of clients by propagating instances of the second version of the client-side backup application from the server to each client of said plurality of clients.
-
21. The computer-readable medium as recited in claim 19, wherein the step of detecting whether a second version of the client-side application resides on said server is carried out at the start of the performance of said backup.
-
22. The computer-readable medium as recited in claim 15, wherein the sequences of instructions further comprise instructions for carrying out the step of tracking data on said client to be backed up on the server, wherein said tracking includes:
maintaining an index of individual files within the data on the client, the index comprising a plurality of entries storing location and time data corresponding to each individual file.
-
23. The computer-readable medium as recited in claim 22, wherein the sequences of instructions further comprise instructions for carrying out the steps of:
-
deleting one or more files in the data set on the client;
marking the deletion of said files in the index; and
deferring removal of copies of said files from the server.
-
-
24. The computer-readable medium as recited in claim 23, wherein the sequences of instructions further comprise instructions for carrying out the step of retaining on the server copies of the deleted files pending expiration of a specified period in which said deleted files are not involved in any operation.
-
25. The computer-readable medium as recited in claim 22, wherein the sequences of instructions further comprise instructions for carrying out the step of, upon an interruption of the performance of a backup of the data, resuming the backup by reference to the index.
-
26. A computer-readable medium carrying one or more sequences of instructions for backing up data from a client to a server which, when executed by one or more processors, causes the one or more processors to perform the steps of:
-
at a first start time for performing a backup of said data from the client to the server, determining at the client whether there exists a condition for rescheduling said backup; and
if there exists a condition for rescheduling said backup, then if the condition is one of a first set of conditions, then randomly selecting a second start time, within a certain time slice, to reattempt performance of said backup; and
if the condition is one of a second set of conditions, then generating a second start time by adding a predetermined amount of time to said first start time, and reattempting performance of said backup at said second start time. - View Dependent Claims (27, 28)
-
Specification