IP Library Granted Patent US 7,225,208
Granted Patent B2
US 7,225,208 · App. 10/675,399 · Granted May 29, 2007

Systems and methods for backing up data files

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,225,208
App. No.
10/675,399
Granted
May 29, 2007
Kind
B2
Abstract

A system for backing up data files generates information from which those files can be recovered, and it sends that information to a back-up location. To determine what information to send, it generates summaries of those files from time to time and identifies changed locations by comparing the summaries with one another. As a consequence, the information it sends the back-up location can be limited to the identities and new contents of the locations thereby identified.

Claims (93)

1. A computer system that includes a source storage system and a backup storage system and, to maintain in the backup storage system information from which a set of source files stored on the source storage system can be restored, is configured for execution thereon of agents that together, for each of a sequence of backup storage times:

A) dynamically identify locations in the source storage system where changes have been made since the previous backup storage time; and

B) in response to thus identifying locations:

i) reading at that backup storage time contents that occupy locations thus identified;

ii) sending such contents to the backup storage system; and

iii) storing those contents in the backup system together with associations of those contents with those locations.

2. The system of claim 1 , wherein at least one said agent selects at least one memory to store the contents.

3. The system of claim 2 , wherein at least one said memory selected by at least one said agent is distinct from a previously selected memory associated with a prior backup storage time.

4. A system as defined in claim 1 wherein the associations of the contents with the locations associate the contents with the files in the source storage system to which those contents were written.

5. A system as defined in claim 4 wherein at least one said agent provides in the backup storage system associations between the contents there stored and the backup storage times for which those contents were stored.

6. The system of claim 5 , wherein at least one said agent provides the associations by generating one or more indexes to associate: the stored contents, the respective backup storage times, the respective changed locations, and one or more respective file identifiers.

7. The system of claim 6 , wherein the one or more indexes include:

a first index to the changed locations based on the one or more file identifiers, and

a second index to the stored contents based on the changed locations.

8. The system of claim 5 , further configured to use the stored contents to create a version of a selected one of the one or more data files.

9. The system of claim 8 , wherein the system is configured to use the stored contents to create a version include processor instructions by:

for each of one or more backup storage times associated with the version: querying one or more indexes that associate the stored contents, the respective backup storage times, the respective changed locations, and one or more file respective identifiers, to identify stored contents and respective changed locations associated with the selected data file, and

combine the identified stored contents with data from a baseline image associated with the selected data file.

10. The system of claim 5 , further configured to receive from a first server a request to create a version of a selected one of the one or more data files, and

based on the request:

for each of one or more backup storage times associated with the version: query one or more indexes that associate the stored contents, the respective backup storage times, the respective changed locations, and one or more respective file identifiers, to identify stored contents and respective changed locations associated the selected data file, and

provide the identified stored contents and respective changed locations to the first server.

11. The system of claim 10 , further configured to, at the first server, combine the identified stored contents with data from a baseline image associated with the selected data file.

12. The system of claim 5 , wherein the backup storage time is based on one or more of: an actual time, a time interval, and an event.

13. For maintaining in a backup storage system information from which a set of source files stored on a source storage system can be restored, a method that includes, for each of a sequence of backup storage times:

A) dynamically identifying locations in the source storage system where changes have been made since the previous backup storage time; and

B) in response to thus identifying locations:

i) reading at that backup storage time contents that occupy locations thus identified;

ii) sending such contents to the backup storage system; and

iii) storing those contents in the backup system together with associations of those contents with those locations.

14. The method of claim 13 , wherein storing the contents includes:

selecting at least one memory to store the contents.

15. The method of claim 14 , wherein selecting at least one memory includes:

selecting the at least one memory to be distinct from a previously selected memory associated with a prior backup storage time.

16. The method of claim 13 , further comprising:

using the stored contents to create a version of a selected one of the one or more data files.

17. The method of claim 16 , wherein using the stored contents to create a version includes:

for each of one or more backup storage times associated with the version: querying one or more indexes that associate the stored contents, the respective backup storage times, the respective changed locations, and one or more respective file identifiers, to identify stored contents and respective changed locations associated with the selected data file, and

combining the identified stored contents with data from a baseline image associated with the selected data file.

18. The method of claim 17 , wherein querying includes:

determining that the changed locations are the same for two or more different backup storage times, and,

identifying the stored contents of the changed locations associated with the latest of the two or more different backup storage times.

19. A method as defined in claim 13 wherein the associations of the contents with the locations associate the contents with the files in the source storage system to which those contents were written.

20. A method as defined in claim 19 further including providing in the backup storage system associations between the contents there stored and the storage times for which those contents were stored.

21. The method of claim 20 , further comprising:

receiving from a first server a request to create a version of a selected one of the one or more data files, and

based on the request:

for each of one or more backup storage times associated with the version: querying one or more indexes that associate the stored contents, the respective backup storage times, the respective changed locations, and one or more respective file identifiers, to identify stored contents and respective changed locations associated with the selected data file, and

providing the identified stored contents and respective changed locations to the first server.

22. The method of claim 21 , further comprising:

at the first server, combining the identified stored contents with data from a baseline image associated with the selected data file.

23. The method of claim 20 , further comprising:

at a coalescence time, coalescing:

two or more stored contents associated with the same file and two or more different backup storage times,

the respective changed locations associated with the two or more coalesced contents, and

one or more indexes to associate the coalesced contents, the respective coalesced changed locations, an identifier of the file with which those contents are associated, and the latest of the two or more different backup storage times.

24. The method of claim 20 , further comprising:

at a coalescence time, coalescing:

two or more stored contents associated with the same file and the same backup storage time,

the respective changed locations associated with the two or more coalesced contents, and

one or more indexes to associate the coalesced contents, the respective coalesced changed locations, an identifier of the file with which those contents are associated, and the same backup storage time.

25. The method of claim 24 , wherein the coalescence time is based on one or more of: an actual time, a time interval, and an event.

26. The method of claim 25 , wherein the event includes an event based on an available storage capacity of a storage medium.

27. The method of claim 20 , wherein the backup storage time is based on one or more of: an actual time, a time interval, and an event.

28. The method of claim 20 , wherein providing the associations includes:

generating one or more indexes to associate: the stored contents, the respective backup storage times, the respective changed locations, and one or more respective file identifiers.

29. The method of claim 28 , wherein the one or more indexes include:

a first index to the changed locations based on the one or more file identifiers, and

a second index to the stored contents based on the changed locations.

30. For configuring a computer system that includes a source storage system and a backup storage system to maintain in the backup storage system information from which a set of source files stored on the source storage system can be restored, a storage medium containing instructions readable by the computer system to configure the computer system to, for each of a sequence of backup storage times:

A) dynamically identify locations in the source storage system where changes have been made since the previous backup storage time; and

B) in response to thus identifying locations:

i) reading at that backup storage time contents that occupy locations thus identified;

ii) sending such contents to the backup storage system; and

iii) storing those contents in the backup system together with associations of those contents with those locations.

31. The storage medium of claim 30 , wherein the instructions to store the contents include instructions to select at least one memory to store the contents.

32. The storage medium of claim 31 , wherein the instructions to select at least one memory include instructions to select the at least one memory to be distinct from a previously selected memory associated with a prior backup storage time.

33. The storage medium of claim 30 , further comprising instructions to use the stored contents to create a version of a selected one of the one or more data files.

34. The storage medium of claim 33 , wherein the instructions to use the stored contents to create a version include instructions to:

for each of one or more backup storage times associated with the version: query one or more indexes that associate the stored contents, the respective backup storage times, the respective changed locations, and one or more respective file identifiers, to identify stored contents and respective changed locations associated with the selected data file, and

combine the identified stored contents with data from a baseline image associated with the selected data file.

35. The storage medium of claim 30 , further comprising instructions to receive from a first server a request to create a version of a selected one of the one or more data files, and

based on the request:

for each of one or more backup storage times associated with the version: query one or more indexes that associate the stored contents, the respective backup storage times, the respective changed locations, and one or more respective file identifiers, to identify stored contents and respective changed locations associated the selected data file, and

provide the identified stored contents and respective changed locations to the first server.

36. The storage medium of claim 35 , further comprising instructions to, at the first server, combine the identified stored contents with data from a baseline image associated with the selected data file.

37. A storage medium as defined in claim 30 wherein the associations of the contents with the locations associate the contents with the files in the source storage system to which those contents were written.

38. A storage medium as defined in claim 37 wherein the instructions further configure the computer system to provide in the backup storage system associations between the contents there stored and the backup storage times for which those contents were stored.

39. The storage medium of claim 38 , wherein the instructions to provide the associations include instructions to generate one or more indexes to associate: the stored contents, the respective backup storage times, the respective changed locations, and one or more respective file identifiers.

40. The storage medium of claim 39 , wherein the one or more indexes include:

a first index to the changed locations based on the one or more file identifiers, and

a second index to the stored contents based on the changed locations.

41. The storage medium of claim 38 , wherein the backup storage time is based on one or more of: an actual time, a time interval, and an event.

Assignments (12)
SECURITY INTEREST Recorded Jun 26, 2024
From: JUNGLE DISK, LLC; KEEPITSAFE LLC
To: TRUIST BANK
Reel/Frame 067846/0738 →
RELEASE OF SECURITY INTEREST Recorded Jun 26, 2024
From: TEXAS CAPITAL BANK
To: KEEPITSAFE, LLC
Reel/Frame 067851/0608 →
CHANGE OF NAME Recorded Jul 6, 2022
From: KEEPITSAFE, INC.
To: KEEPITSAFE, LLC
Reel/Frame 060611/0760 →
SECURITY INTEREST Recorded Sep 27, 2021
From: KEEPITSAFE, INC.
To: TEXAS CAPITAL BANK
Reel/Frame 057605/0908 →
RELEASE OF SECURITY INTEREST Recorded Sep 20, 2021
From: MUFG UNION BANK, N.A.
To: KEEPITSAFE, INC.
Reel/Frame 057530/0491 →
SECURITY INTEREST Recorded Apr 8, 2021
From: EVERYDAY HEALTH, INC.; KEEPITSAFE, INC.; OOKLA, LLC; SPICEWORKS, INC.; THREATTRACK SECURITY, INC.; RETAILMENOT, INC.
To: MUFG UNION BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 056969/0755 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 21, 2016
From: AUTONOMY, INC.
To: KEEPITSAFE, INC.
Reel/Frame 038346/0564 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 25, 2012
From: IRON MOUNTAIN INCORPORATED
To: AUTONOMY, INC.
Reel/Frame 028103/0838 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 14, 2008
From: IRON MOUNTAIN INFORMATION MANAGEMENT, INC.
To: IRON MOUNTAIN INCORPORATED
Reel/Frame 021387/0400 →
MERGER Recorded Dec 20, 2006
From: LIVEVAULT CORPORATION
To: IRON MOUNTAIN INFORMATION MANAGEMENT, INC.
Reel/Frame 018661/0588 →
MERGER Recorded Dec 20, 2006
From: IRON MOUNTAIN INFORMATION MANAGEMENT, INC.
To: IRON MOUNTAIN INCORPORATED
Reel/Frame 018661/0637 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 30, 2003
From: MIDGLEY, CHRISTOPHER; WEBB, JOHN
To: LIVEVAULT CORPORATION
Reel/Frame 014606/0224 →