System and method of performing continuous backup of a data file on a computing device
The described embodiments relate to devices for performing continuous backup of a data file on a computing device. The computing device transmits, to a backup server, a first network backup version of the data file, when the backup server is constantly available to the computing device through an uninterrupted network connection. The computing device monitors the data file to detect when a modification has been made to the data file, and when a modification to the data file has been detected, the computing device refrains from transmitting backup data associated with the modification until a network time interval expires. During the network time interval, a delta file corresponding to the modification made to the data file is stored locally on the computing device. Upon expiry of the network time interval, the computing device then transmits a second network backup version of the data file to the backup server.
1. A method of performing continuous backup of a data file on a computing device, the method comprising:
transmitting, to the backup server, a first network backup version of the data file, the backup server being constantly available to the computing device through an uninterrupted network connection between the computing device and the backup server;
monitoring the data file to detect when a modification has been made to the data file;
when a modification to the data file has been detected, refraining from transmitting backup data associated with the modification until a network time interval expires;
storing, locally on the computing device, a delta file corresponding to the modification made to the data file; and
upon expiry of the network time interval, transmitting a second network backup version of the data file to the backup server, the second network backup version comprising the backup data associated with the modification to the data file.
2. The method of claim 1 , wherein a plurality of modifications are detected as being made to the data file, each at a different time before the expiry of the network time interval, and wherein the method further comprises repeating the refraining and the storing for each of the plurality of detected modifications.
3. The method of claim 1 , wherein the delta file tracks differences between the modified data file and the first network backup version of the data file.
4. The method of claim 1 , wherein the delta file comprises:
a file indicator identifying the data file that the delta file relates to, and
a parent network version indicator identifying the first network backup version of the data file transmitted to the backup server.
5. The method of claim 4 , wherein one or more of the file indicator or the parent network version indicator is provided in a file name of the delta file.
6. The method of claim 2 , further comprising:
for at least one of the plurality of modifications made to the data file, storing a control file locally on the computing device, wherein the control file includes:
a first timestamp indicating when the modification was made to the data file, and
a second timestamp indicating when the first network backup version of the data file was transmitted to the backup server.
7. The method of claim 6 , wherein the control file comprises a file name containing the first timestamp, and the control file comprises a file date that is set to the second timestamp.
8. The method of claim 6 , wherein the control file comprises:
a file indicator identifying the data file that the control file relates to, and
a parent network version indicator identifying the first network backup version of the data file transmitted to the backup server.
9. The method of claim 8 , wherein one or more of the file indicator or the parent network version indicator is provided in a file name of the control file.
10. The method of claim 6 , wherein prior to transmitting the second network backup version to the backup server, the method further comprises:
determining if there is a previously-stored control file that has a second timestamp indicating when the first network backup version of the data file was transmitted to the backup server; and
identifying the control file stored locally on the computing device as the previously-stored control file.
11. The method of claim 1 , wherein a current version of the data file, that is present on the computing device at the expiry of the network time interval, is transmitted as the second network backup version to the backup server.
12. The method of claim 1 , wherein a plurality of modifications are detected as being made to the data file, each at a different time before the expiry of the network time interval, and wherein the method further comprises:
repeating the refraining and the storing for each of the plurality of detected modifications,
wherein, the second network backup version includes the last delta file stored closest in time to the expiry of the network time interval.
13. The method of claim 1 , wherein the delta file is deleted after a cleanup time interval, and wherein the cleanup time interval indicates the duration of time that the delta file should remain stored on the computing device prior to being deleted.
14. The method of claim 13 , wherein the cleanup time interval is equal to the network time interval.
15. The method of claim 1 , wherein the data file comprises an archive indicator that indicates when the data file has been modified, and wherein the monitoring the data file comprises reading the archive indicator.
16. The method of claim 1 , further comprising:
receiving input indicating that a version of the data file corresponding to the detected modification is to be restored;
retrieving the first network backup version from the backup server;
reading the delta file; and
merging the retrieved first network backup version with the read delta file to restore the version of the data file.
17. A computing device for performing continuous backup of a data file, the computing device comprising a processor and a memory storing instructions which, when executed by the processor, cause the processor to:
transmit, to the backup server, a first network backup version of the data file, the backup server being constantly available to the computing device through an uninterrupted network connection between the computing device and the backup server;
monitor the data file to detect when a modification has been made to the data file;
when a modification to the data file has been detected, refrain from transmitting backup data associated with the modification until a network time interval expires;
store, locally on the computing device, a delta file corresponding to the modification made to the data file; and
upon expiry of the network time interval, transmit a second network backup version of the data file to the backup server, the second network backup version comprising the backup data associated with the modification to the data file.
18. The computing device of claim 17 , wherein the processor is further configured to:
receive input indicating that a version of the data file corresponding to the detected modification is to be restored;
retrieve the first network backup version from the backup server;
read the delta file; and
merge the retrieved first network backup version with the read delta file to restore the version of the data file.
19. A non-transitory computer readable medium storing instructions for performing continuous backup of a data file on a computing device, wherein the instructions, when executed by a processor of the computing device, cause the processor to:
transmit, to the backup server, a first network backup version of the data file, the backup server being constantly available to the computing device through an uninterrupted network connection between the computing device and the backup server;
monitor the data file to detect when a modification has been made to the data file;
when a modification to the data file has been detected, refrain from transmitting backup data associated with the modification until a network time interval expires;
store, locally on the computing device, a delta file corresponding to the modification made to the data file; and
upon expiry of the network time interval, transmit a second network backup version of the data file to the backup server, the second network backup version comprising the backup data associated with the modification to the data file.
20. The computer readable medium of claim 19 , wherein the processor is further configured to:
receive input indicating that a version of the data file corresponding to the detected modification is to be restored;
retrieve the first network backup version from the backup server;
read the delta file; and
merge the retrieved first network backup version with the read delta file to restore the version of the data file.