IP Library Granted Patent US 10,445,187
Granted Patent B2
US 10,445,187 · App. 14/966,718 · Granted Oct 15, 2019

Searching and indexing of backup data sets

Inventors: Niva Shrestha (Franklin, MA); Jonathan Raymond Choate (Princeton, MA)
Assignee: Actifio, Inc.
G06F11/1451G06F11/1458G06F16/13G06F16/148
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 10,445,187
App. No.
14/966,718
Granted
Oct 15, 2019
Kind
B2
Abstract

Systems and methods of providing search capabilities for data backups by indexing multiple time-based versions of the data backups such that the multiple time-based versions of each of the data backups are factored into a search result. First data associated with a first backup of a data set is received, the first data including a list of changes associated with the data set between a first backup and a second backup. For each of the first backup, second backup and one or more intermediary backups an index representative of difference data is created. Second data associated with a search request is received. A version of the file is retrieved based on the search request, thereby providing search capabilities for data backups by indexing data backups at a plurality of backup times such that multiple versions of each of the data backups are factored into a search result.

Claims (111)

1. A computerized method of providing search capabilities for data backups by indexing multiple time-based versions of the data backups such that the multiple time-based versions of each of the data backups are factored into a search result, the method comprising:

receiving, at a computing device, first data associated with a first backup of a data set, the first data including a list of changes associated with the data set between a first point in time associated with the first backup and a second point in time associated with a second backup, the second point in time being prior to the first point in time, the data set being located on a customer application server and being protected by a data management system;

creating, at the computing device, for each of the first backup, second backup and one or more intermediary backups an index representative of difference data, the difference data representative at least of changes to content of files in the data set between each of the first backup, the second backup and the one or more intermediary backups, and a corresponding prior backup most recent in time to each of the first backup, second backup and the one or more intermediary backups, each intermediary backup occurring at an associated intermediary point in time occurring between the first backup and the second backup;

receiving, at the computing device, second data associated with a search request, the search request including an attribute of the data set, the attribute of the data set including a file within the data set and at least one backup time associated with the file; and

retrieving, at the computing device, a version of the file associated with the at least one backup time associated with the file, wherein retrieving the version of the file comprises generating the version of the file by combining the difference data from each of the indices associated with the at least one backup time and intermediary backup times between the at least one backup time and the second point in time,

thereby providing search capabilities for data backups by indexing data backups at a plurality of backup times such that multiple versions of each of the data backups are factored into a search result.

2. The computerized method of claim 1 , wherein the attribute of the data set further comprises at least one of:

a file name associated with the file,

a directory name associated with a directory,

a backup name associated with a backup,

date ranges associated with the file and the backup, and

file metadata associated with the file.

3. The computerized method of claim 1 , wherein the list of changes include changes to at least one of:

file path associated with the file;

file type associated with the file;

creation date associated with the file;

modification date associated with the file;

file size associated with the file; and

file status associated with the file, where file status includes at least one of:

the file being created,

the file being deleted,

file content associated with the file being modified, and

metadata associated with the file being modified.

4. The computerized method of claim 1 , wherein each index includes a status associated with the difference data, the status including at least one of:

a no change operation,

an add operation,

an update operation, and

a delete operation.

5. The computerized method of claim 4 , wherein combining indices comprises combining the status for each index across the backup times.

6. The computerized method of claim 4 , further comprising:

receiving, at the computing device, a request associated with expiring a third backup;

when the third backup comprises one of the second backup or an intermediary backup, merging difference data associated with an index of a fourth backup that is most recent in time after the third backup into difference data of an index associated with the third backup; and

when the third backup comprises the first backup, and the request to expire the third backup is received at a request time after the first point in time and before a backup point in time associated with the fourth backup, the fourth backup being taken after the first point in time:

disabling, at the computing device, search capability of an index associated with the first backup,

receiving, at the computing device, a request associated with a backup for the fourth backup at the fourth backup point in time, and

merging, at the computing device, difference data associated with an index of the fourth backup into difference data associated with an index associated with the third backup.

7. The computerized method of claim 6 , wherein the merged difference data comprises:

a first update operation, when the difference data associated with the third backup index includes one of the add operation or a second update operation and the difference data associated with the fourth backup index includes the first update operation;

a delete operation, when the difference data associated with the third backup index includes the update operation and the difference data associated with the fourth backup index includes the delete operation; and

a no change operation, when the difference data associated with the third backup index includes the add operation and the difference data associated with the fourth backup index includes the delete operation.

8. A computing system for providing search capabilities for data backups by indexing multiple time-based versions of the data backups such that the multiple time-based versions of each of the data backups are factored into a search result, the computing system comprising:

a processor;

a memory coupled to the processor and including instructions that, when executed by the processor, cause the processor to:

receive first data associated with a first backup of a data set, the first data including a list of changes associated with the data set between a first point in time associated with the first backup and a second point in time associated with a second backup, the second point in time being prior to the first point in time, the data set being located on a customer application server and being protected by a data management system;

create for each of the first backup, second backup and one or more intermediary backups an index representative of difference data, the difference data representative at least of changes to content of files in the data set between each of the first backup, the second backup and the one or more intermediary backups, and a corresponding prior backup most recent in time to each of the first backup, second backup and the one or more intermediary backups, each intermediary backup occurring at an associated intermediary point in time occurring between the first backup and the second backup;

receive second data associated with a search request, the search request including an attribute of the data set, the attribute of the data set including a file within the data set and at least one backup time associated with the file; and

retrieve a version of the file associated with the at least one backup time associated with the file, wherein retrieving the version of the file comprises generating the version of the file by combining the difference data from each of the indices associated with the at least one backup time and intermediary backup times between the at least one backup time and the second point in time,

thereby providing search capabilities for data backups by indexing data backups at a plurality of backup times such that multiple versions of each of the data backups are factored into a search result.

9. The computerized method of claim 8 , wherein the attribute of the data set further comprises at least one of:

a file name associated with the file,

a directory name associated with a directory,

a backup name associated with a backup,

date ranges associated with the file and the backup, and

file metadata associated with the file.

10. The computing system of claim 8 , wherein the list of changes include changes to at least one of:

file path associated with the file;

file type associated with the file;

creation date associated with the file;

modification date associated with the file;

file size associated with the file; and

file status associated with the file, where file status includes at least one of:

the file being created,

the file being deleted,

file content associated with the file being modified, and

metadata associated with the file being modified.

11. The computing system of claim 8 , wherein each index includes a status associated with the difference data, the status including at least one of:

a no change operation,

an add operation,

an update operation, and

a delete operation.

12. The computing system of claim 11 , wherein combining indices comprises combining the status for each index across the backup times.

13. The computing system of claim 11 , wherein the processor is further configured to:

receive a request associated with expiring a third backup;

when the third backup comprises one of the second backup or an intermediary backup, merge difference data associated with an index of a fourth backup that is most recent in time after the third backup into difference data of an index associated with the third backup; and

when the third backup comprises the first backup, and the request to expire the third backup is received at a request time after the first point in time and before a backup point in time associated with the fourth backup, the fourth backup being taken after the first point in time:

disable search capability of an index associated with the first backup,

receive a request associated with a backup for the fourth backup at the fourth backup point in time, and

merge difference data associated with an index of the fourth backup into difference data associated with an index associated with the third backup.

14. The computing system of claim 13 , wherein the merged difference data comprises:

a first update operation, when the difference data associated with the third backup index includes one of the add operation or a second update operation and the difference data associated with the fourth backup index includes the first update operation;

a delete operation, when the difference data associated with the third backup index includes the update operation and the difference data associated with the fourth backup index includes the delete operation; and

a no change operation, when the difference data associated with the third backup index includes the add operation and the difference data associated with the fourth backup index includes the delete operation.

15. A non-transitory computer readable medium having executable instructions operable to cause an apparatus to:

receive first data associated with a first backup of a data set, the first data including a list of changes associated with the data set between a first point in time associated with the first backup and a second point in time associated with a second backup, the second point in time being prior to the first point in time, the data set being located on a customer application server and being protected by a data management system;

create for each of the first backup, second backup and one or more intermediary backups an index representative of difference data, the difference data representative at least of changes to content of files in the data set between each of the first backup, the second backup and the one or more intermediary backups, and a corresponding prior backup most recent in time to each of the first backup, second backup and the one or more intermediary backups, each intermediary backup occurring at an associated intermediary point in time occurring between the first backup and the second backup;

receive second data associated with a search request, the search request including an attribute of the data set, the attribute of the data set including a file within the data set and at least one backup time associated with the file; and

retrieve a version of the file associated with the at least one backup time associated with the file, wherein retrieving the version of the file comprises generating the version of the file by combining the difference data from each of the indices associated with the at least one backup time and intermediary backup times between the at least one backup time and the second point in time,

thereby providing search capabilities for data backups by indexing data backups at a plurality of backup times such that multiple versions of each of the data backups are factored into a search result.

16. The non-transitory computer readable medium of claim 15 , wherein the attribute of the data set further comprises at least one of:

a file name associated with the file,

a directory name associated with a directory,

a backup name associated with a backup,

date ranges associated with the file and the backup, and

file metadata associated with the file.

17. The non-transitory computer readable medium of claim 15 , wherein each index includes a status associated with the difference data, the status including at least one of:

a no change operation,

an add operation,

an update operation, and

a delete operation.

18. The non-transitory computer readable medium of claim 17 , wherein combining indices comprises combining the status for each index across the backup times.

19. The non-transitory computer readable medium of claim 17 , wherein the apparatus is further caused to:

receive a request associated with expiring a third backup;

when the third backup comprises one of the second backup or an intermediary backup, merge difference data associated with an index of a fourth backup that is most recent in time after the third backup into difference data of an index associated with the third backup; and

when the third backup comprises the first backup, and the request to expire the third backup is received at a request time after the first point in time and before a backup point in time associated with the fourth backup, the fourth backup being taken after the first point in time:

disable search capability of an index associated with the first backup,

receive a request associated with a backup for the fourth backup at the fourth backup point in time, and

merge difference data associated with an index of the fourth backup into difference data associated with an index associated with the third backup.

20. The non-transitory computer readable medium of claim 19 , wherein the merged difference data comprises:

a first update operation, when the difference data associated with the third backup index includes one of the add operation or a second update operation and the difference data associated with the fourth backup index includes the first update operation;

a delete operation, when the difference data associated with the third backup index includes the update operation and the difference data associated with the fourth backup index includes the delete operation; and

a no change operation, when the difference data associated with the third backup index includes the add operation and the difference data associated with the fourth backup index includes the delete operation.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 26, 2021
From: ACTIFIO, INC.
To: GOOGLE LLC
Reel/Frame 056911/0517 →
RELEASE OF SECURITY INTEREST Recorded May 29, 2020
From: CRESTLINE DIRECT FINANCE, L.P., AS COLLATERAL AGENT
To: ACTIFIO, INC.
Reel/Frame 053483/0084 →
SECURITY INTEREST Recorded Aug 3, 2018
From: ACTIFIO, INC.
To: CRESTLINE DIRECT FINANCE, L.P., AS ADMINISTRATIVE AGENT, COLLATERAL AGENT AND SOLE LEAD ARRANGER
Reel/Frame 046702/0543 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 30, 2015
From: SHRESTHA, NIVA; CHOATE, JONATHAN RAYMOND
To: ACTIFIO, INC.
Reel/Frame 037383/0081 →