IP Library Granted Patent US 7,134,041
Granted Patent B2
US 7,134,041 · App. 10/251,499 · Granted Nov 7, 2006

Systems and methods for data backup over a network

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 7,134,041
App. No.
10/251,499
Granted
Nov 7, 2006
Kind
B2
Abstract

A system and method for data backup over a network has been developed. The method includes creating a baseline copy of the data files that are to be archived. When the data is subsequently being backed up, the system checks for the presence of newly added files by comparing the sort order of the present data files with the sort order of the baseline copy. Any newly added files are then saved to the baseline copy. The system checks for any changes in existing files by comparing the hash numbers of the present data files with the hash numbers of the data files in the baseline copy. Any changed files are then merged into their corresponding data files in the baseline copy.

Claims (60)

1. A method for storage of data files, comprising:

creating a baseline copy of the data files, where each baseline data file has a position indicator and a calculated value calculated based upon the content of the corresponding baseline data file, wherein the position indicator is separate from the calculated value wherein the position indicator associated with the baseline data file is not calculated based upon the content of the corresponding baseline data file and wherein the position indicator associated with each baseline data file indicates a position of the baseline data file with respect to other baseline data files;

performing a backup session with at least one updated data file, where each updated data file has a position indicator and a calculated value calculated based upon the content of the corresponding updated data file, wherein the position indicator associated with the updated data file is not calculated based upon the content of the corresponding baseline data file;

determining if the updated data file does not exist as any baseline data file using the position indicator of the updated data file, wherein the position indicator of the updated file is separate from the calculated value associated with the updated file and wherein the position indicator of the updated data file indicates whether the updated data file is a file that exists among the baseline copy of the data files;

wherein if the updated data file does not exist as any baseline data file, the updated data file is added to the baseline copy of the data files;

determining if the updated file is a new version of any baseline data file by comparing the calculated values associated with the baseline data files with the calculated value associated with the updated data file; and

wherein if the updated file is a new version of any baseline data file, the updated data file is merged with the baseline data file in the baseline copy of data files.

2. The method of claim 1 , where the calculated value associated with each baseline data file is a hash number, and wherein the hash number of each baseline data file is kept in a hash line index.

3. The method of claim 1 , where the baseline copy of the data files comprises multiple storage groups containing the baseline data files.

4. The method a claim 3 , where the baseline copy of data files further comprises:

a location file, where the location file contains the name and location of each baseline data file; and

an index file, where the index file contains any updated data files and any new data files for the baseline copy of data files.

5. The method of claim 3 , where the baseline data files are divided into the storage groups based on access frequency of the baseline data files.

6. The method of claim 1 , where an updated data file is added to the baseline copy of data files during the backup session.

7. The method of claim 1 , where an updated data file is added to the baseline copy of data files upon receiving a retrieval request.

8. The method of claim 1 , where an updated data file is merged with any baseline data file during the backup session.

9. The method of claim 1 , where an updated data file is merged with any baseline data file upon receiving a retrieval request.

10. The method as recited in claim 1 , wherein each position indicator is a numerical indicator.

11. The method as recited in claim 1 , wherein each of the position indicators is not a hash number.

12. The method as recited in claim 1 , wherein each of the calculated values is a hash number.

13. The method as recited in claim 1 , wherein the position indicator associated with the updated data file indicates whether the updated file does not exist as any baseline data file.

14. The method as recited in claim 1 , wherein when the position indicator is not equal to a position indicator associated with one of the data files, the position indicator indicates that the updated file does not exist as one of the baseline data files.

15. The method as recited in claim 1 , wherein when the position indicator is equal to a position indicator associated with one of the data files, the position indicator indicates that the updated file exists as one of the baseline data files.

16. The method as recited in claim 1 , wherein determining if the updated data file does not exist as any baseline data file comprises:

comparing the position indicators of the baseline data files with the position indicator of the updated data file.

17. The method as recited in claim 1 , wherein the position indicators of the baseline data files indicate a sequence of the baseline data files with respect to one another and wherein the position indicator of the updated data file indicates whether the updated data file is within the sequence.

18. The method as recited in claim 17 , wherein determining if the updated data file does not exist as any baseline data file comprises:

determining whether the position indicator of the updated data file is within the sequence or equal to one of the position indicators associated with the baseline data files.

19. The method as recited in claim 1 , wherein the position indicator of each of the baseline data files and the updated data file is an address or pointer indicating a location in memory.

20. The method as recited in claim 1 , wherein the position indicators of the baseline data files indicate an order in which an operating system delivers the baseline data files.

21. The method as recited in claim 1 , wherein the position indicators of the baseline data files are obtained without alphabetically sorting the baseline data files.

22. The method as recited in claim 1 , wherein the calculated value associated with the updated data file is a single value and the calculated value associated with each of the baseline copy of the data files is a single value.

23. The method as recited in claim 1 , wherein the calculated value associated with the updated data file is a single hash total value for the updated data file and the calculated value associated with each of the baseline copy of the data files is a single hash total value for the corresponding baseline data file.

24. A method for storing data files, comprising:

running a backup session with one or more updated data files;

identifying and adding new backup data files to the baseline copy of data files using a position indicator associated with each of the updated data files, wherein the position indicators are not calculated values that are calculated based upon the content of the updated data files; and

identifying and merging each of the updated data files that correspond to a pre-existing backup data file into a corresponding baseline data file by comparison of a first calculated value calculated based upon the content of the corresponding baseline data file and a second calculated value calculated based upon the content of the updated data file.

25. The method as recited in claim 24 , wherein the calculated value associated with the updated data file is a single value and the calculated value associated with each of the baseline copy of the data files is a single value.

26. The method as recited in claim 24 , wherein the calculated value associated with each of the updated data files is a single hash total value for the updated data file and the calculated value associated with each of the baseline copy of the data files is a single hash total value for the corresponding baseline data file.

27. The method as recited in claim 24 , wherein identifying and merging each of the updated data files that correspond to a pre-existing backup data file into a corresponding baseline data file comprises:

identifying and merging a pre-existing backup data file into a corresponding baseline data file by comparison of hash numbers.

28. The method as recited in claim 24 , wherein the position indicator associated with each of the updated data files indicates whether the corresponding updated data file does not exist as any baseline data file.

29. The method as recited in claim 24 , wherein each of the position indicators is a numerical value or pointer.

30. The method as recited in claim 24 , wherein the calculated values are hash numbers.

31. The method as recited in claim 24 , wherein identifying and adding new backup data files to the baseline copy of data files comprises:

comparing the position indicators of the updated data files with position indicators associated with the baseline copy of data files.

32. The method as recited in claim 24 , wherein the position indicators of the baseline data files indicate a sequence of the baseline data files with respect to one another and wherein the position indicator of the updated data file indicates whether the updated data file is within the sequence.

33. The method as recited in claim 32 , wherein determining if the updated data file does not exist as any baseline data file comprises:

determining whether the position indicator of the updated data file is within the sequence or equal to one of the position indicators associated with the baseline data files.

34. A method for storage of data files, comprising:

creating a baseline copy of the data files, where each baseline data file has a position indicator and a calculated value calculated based upon the data in the corresponding baseline data file, wherein the position indicator of the baseline data file is a numerical value or pointer that is separate from the calculated value, wherein the position indicator is not calculated based upon the data in the corresponding baseline data file and wherein the position indicator associated with each baseline data file indicates a position of the baseline data file with respect to other baseline data files;

performing a backup session with at least one updated data file, where each updated data file has a position indicator and a calculated value calculated based upon the data in the corresponding updated data file, wherein the position indicator is not calculated based upon the data in the corresponding baseline data file;

determining if the updated data file does not exist as any baseline data file using the position indicator of the updated data file, wherein the position indicator of the updated file is a numerical value or pointer that is separate from the calculated value associated with the updated file and wherein the position indicator of the updated data file indicates whether the updated data file is a file that exists among the baseline copy of the data files;

wherein if the updated data file does not exist as any baseline data file, the updated data file is added to the baseline copy of the data files;

determining if the updated file is a new version of any baseline data file by comparing the calculated values associated with the baseline data files with the calculated value associated with the updated data file; and

wherein if the updated file is a new version of any baseline data file, the updated data file is merged with the baseline data file in the baseline copy of data files.

35. A method for storing data files, comprising:

running a backup session with one or more updated data files;

identifying and adding new backup data files to the baseline copy of data files using a position indicator associated with each of the updated data files, wherein the position indicators are not calculated values that are calculated based upon the data in the updated data files; and

identifying and merging each of the updated data files that correspond to a pre-existing backup data file into a corresponding baseline data file by comparison of a first calculated value calculated based upon the data in the corresponding baseline data file and a second calculated value calculated based upon the data in the updated data file, wherein the position indicators are numerical values or pointers that are separate from the calculated values.

Assignments (10)
CERTIFICATE OF CONVERSION Recorded Oct 12, 2023
From: CARBONITE, INC.
To: CARBONITE, LLC
Reel/Frame 065222/0303 →
ASSIGNMENT AND ASSUMPTION AGREEMENT Recorded Oct 12, 2023
From: CARBONITE, LLC
To: OPEN TEXT INC.
Reel/Frame 065222/0310 →
TERMINATION OF PATENT SECURITY AGREEMENT FILED AT R/F 045640/0335 Recorded Mar 26, 2019
From: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
To: CARBONITE, INC.
Reel/Frame 048702/0929 →
SECURITY INTEREST Recorded Mar 19, 2018
From: CARBONITE, INC.
To: SILICON VALLEY BANK
Reel/Frame 045640/0335 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2016
From: EVAULT, INC.
To: CARBONITE GMBH
Reel/Frame 037617/0911 →
CHANGE OF NAME Recorded Jan 10, 2012
From: I365 INC.
To: EVAULT, INC.
Reel/Frame 027508/0769 →
CHANGE OF NAME Recorded May 4, 2009
From: EVAULT, INC.
To: I365 INC.
Reel/Frame 022634/0047 →
RELEASE Recorded Jan 22, 2007
From: SILICON VALLEY BANK
To: EVAULT, INC.
Reel/Frame 018826/0247 →
SECURITY AGREEMENT Recorded Dec 19, 2005
From: EVAULT, INC.
To: SILICON VALLEY BANK
Reel/Frame 017352/0822 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 6, 2002
From: MURRAY, BILL; LEWITZKY, ANDRE; BOLDT, TIM
To: EVAULT, INC.
Reel/Frame 013875/0279 →