# US 10,311,083 B2 · Search and analytics for storage systems

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,311,083 B2
- Document ID: US10311083B2
- Status: Granted
- Kind: B2
- Application number: 15/947,373
- Filed: 2018-04-06
- Published: 2018-08-09
- Granted: 2019-06-04
- Earliest claimed: 2015-02-17
- Assignees: Cohesity, Inc.
- Applicants: Cohesity, Inc.
- Inventors: Apurv Gupta; Vipin Gupta; Johnny Chen; Sunil Moolchandani; Murali Vajapeyam
- Web page: https://patentgrep.com/patent/US10311083B2

## CPC

- G06F 11/1448: {Management of the data involved in backup or backup restore}
- G06F 9/54: Interprogram communication
- G06F 16/27: Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Application-level data in a storage system are evaluated. For example, a backup analysis tool retrieves a backup object stored in the storage system. The backup analysis tool reconstructs an application object from the backup object. The backup analysis tool accesses the first application object according to a native application format associated with the first object.

## Claims

### Claim 1

A method, comprising:
retrieving, by execution of one or more processors, a first backup object of a plurality of backup objects stored in a secondary storage system, wherein each backup object in the plurality represents a respective storage state associated with the secondary storage system at a respective point in time;
using the first backup object to perform a first level of reconstruction by reconstructing at least a portion of a full backup of a corresponding storage state associated with the first backup to obtain a reconstructed view of at least the portion of the full backup, wherein the first backup captures a snapshot since a previous backup using a B+ tree structure distributed among storage nodes of a distributed storage system;
performing a second level of reconstruction by reconstructing a first application object from at least the portion of the full backup reconstructed using the first backup object and the previous backup, wherein the first application object is nested in at least the portion of the full backup reconstructed using the first backup object, and the first level of reconstruction and the second level of reconstruction are performed to automatically and selectively access application level data encapsulated in at least the portion of the full backup reconstructed using the first backup object;
accessing the first application object according to a native application format associated with the first application object;
evaluating content stored by the first application object; and
modifying the first application object based on the evaluated content.

### Claim 2 (depends on 1)

The method of claim 1, wherein accessing the first application object includes using an application programming interface (API) associated with the first application object.

### Claim 3 (depends on 1)

The method of claim 1, wherein evaluating content stored by the first application object comprises:
identifying a second application object stored by the first application object; and
accessing the second application object stored by the first application object according to a native application format associated with the second application object.

### Claim 4 (depends on 3)

The method of claim 3, wherein modifying the first application object comprises:
identifying, based on the evaluation, specified content stored by the second application object; and
removing the specified content from the second application object.

### Claim 5 (depends on 3)

The method of claim 3, wherein accessing the second application object comprises:
invoking an application programming interface (API) associated with the second application object.

### Claim 6 (depends on 1)

The method of claim 1, wherein modifying the first application object comprises:
identifying, based on the evaluation, specified content stored by the first application object; and
removing the specified content from the first application object.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
building an index of content stored by the first application object.

### Claim 8 (depends on 1)

The method of claim 1, further comprising:
retrieving a second backup object of the plurality of backup objects stored in the secondary storage system;
reconstructing a second application object from the second backup object; and
replacing the first application object with the second application object in the first backup object.

### Claim 9

A system, comprising:
a processor; and
a memory coupled with the processor, wherein the memory is configured to provide the processor with instructions which when executed cause the processor to:
retrieve, by execution of one or more processors, a first backup object of a plurality of backup objects stored in a secondary storage system, wherein each backup object in the plurality represents a respective storage state associated with the secondary storage system at a respective point in time;
use the first backup object to perform a first level of reconstruction by reconstructing at least a portion of a full backup of a corresponding storage state associated with the first backup to obtain a reconstructed view of at least the portion of the full backup, wherein the first backup captures a snapshot since a previous backup using a B+ tree structure distributed among storage nodes of a distributed storage system;
perform a second level of reconstruction by reconstructing a first application object from at least the portion of the full backup reconstructed using the first backup object and the previous backup, wherein the first application object is nested in at least the portion of the full backup reconstructed using the first backup object, and the first level of reconstruction and the second level of reconstruction are performed to automatically and selectively access application level data encapsulated in at least the portion of the full backup reconstructed using the first backup object;
access the first application object according to a native application format associated with the first application object;
evaluate content stored by the first application object; and
modify the first application object based on the evaluated content.

### Claim 10 (depends on 9)

The system of claim 9, wherein accessing the first application object includes using an application programming interface (API) associated with the first application object.

### Claim 11 (depends on 9)

The system of claim 9, wherein evaluating content stored by the first application object comprises:
identifying a second application object stored by the first application object; and
accessing the second application object stored by the first application object according to a native application format associated with the second application object.

### Claim 12 (depends on 11)

The system of claim 11, wherein modifying the first application object comprises:
identifying, based on the evaluation, specified content stored by the second application object; and
removing the specified content from the second application object.

### Claim 13 (depends on 11)

The system of claim 11, wherein accessing the second application object comprises:
invoking an application programming interface (API) associated with the second application object.

### Claim 14 (depends on 9)

The system of claim 9, wherein modifying the first application object comprises:
identifying, based on the evaluation, specified content stored by the first application object; and
removing the specified content from the first application object.

### Claim 15 (depends on 9)

The system of claim 9, wherein the memory is further configured to provide the processor with instructions which when executed cause the processor to build an index of content stored by the first application object.

### Claim 16 (depends on 9)

The system of claim 9, wherein the memory is further configured to provide the processor with instructions which when executed cause the processor to:
retrieve a second backup object of the plurality of backup objects stored in the secondary storage system;
reconstruct a second application object from the second backup object; and
replace the first application object with the second application object in the first backup object.

### Claim 17

A computer program product, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:
retrieving, by execution of one or more processors, a first backup object of a plurality of backup objects stored in a secondary storage system, wherein each backup object in the plurality represents a respective storage state associated with the secondary storage system at a respective point in time;
using the first backup object to perform a first level of reconstruction by reconstructing at least a portion of a full backup of a corresponding storage state associated with the first backup to obtain a reconstructed view of at least the portion of the full backup, wherein the first backup captures a snapshot since a previous backup using a B+ tree structure distributed among storage nodes of a distributed storage system;
performing a second level of reconstruction by reconstructing a first application object from at least the portion of the full backup reconstructed using the first backup object and the previous backup, wherein the first application object is nested in at least the portion of the full backup reconstructed using the first backup object, and the first level of reconstruction and the second level of reconstruction are performed to automatically and selectively access application level data encapsulated in at least the portion of the full backup reconstructed using the first backup object;
accessing the first application object according to a native application format associated with the first application object;
evaluating content stored by the first application object; and
modifying the first application object based on the evaluated content.

### Claim 18 (depends on 17)

The computer program product of claim 17, wherein accessing the first application object includes using an application programming interface (API) associated with the first application object.

### Claim 19 (depends on 17)

The computer program product of claim 17, wherein evaluating content stored by the first application object comprises:
identifying a second application object stored by the first application object; and
accessing the second application object stored by the first application object according to a native application format associated with the second application object.

### Claim 20 (depends on 17)

The computer program product of claim 17, wherein evaluating content stored by the first application object comprises:
identifying, based on the evaluation, specified content stored by the first application object; and
removing the specified content from the first application object.
