# US 12,001,452 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 12,001,452 B2
- Document ID: US12001452B2
- Status: Granted
- Kind: B2
- Application number: 18/134,794
- Filed: 2023-04-14
- Published: 2023-08-10
- Granted: 2024-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/US12001452B2

## 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:
accessing, by a second storage system, a backed up version of an object that was backed up to the second storage system from a first storage system, wherein the object was included in a backup snapshot that includes one or more other objects, wherein accessing the backed up version of the object includes accessing a key-value store maintained by the second storage system to determine offsets for the object as stored by the second storage system, wherein the backed up version of the object is stored in a backup format associated with the second storage system that is different from a native application format associated with the object;
reconstructing the object from the backup format associated with the second storage system to the native application format associated with the object using object data chunks accessed at the determined offsets;
evaluating the object using an interface associated with the object; and
building a searchable index of the backup snapshot based on the evaluation of the object.

### Claim 2 (depends on 1)

The method of claim 1, wherein using the interface associated with the object includes identifying nested objects within the object.

### Claim 3 (depends on 2)

The method of claim 2, wherein evaluating the object using the interface associated with the object further includes using a respective interface to access the identified nested objects and identify contents of the identified nested objects.

### Claim 4 (depends on 2)

The method of claim 2, wherein the identified nested objects include one or more word processing application objects, one or more image editing application objects, and/or one or more enterprise service application objects.

### Claim 5 (depends on 1)

The method of claim 1, wherein the searchable index is for documents in the backup snapshot.

### Claim 6 (depends on 1)

The method of claim 1, wherein the searchable index is for content of documents in the backup snapshot.

### Claim 7 (depends on 1)

The method of claim 1, wherein the object is a virtual machine disk drive file.

### Claim 8 (depends on 1)

The method of claim 1, wherein the second storage system stores a plurality of backup snapshots.

### Claim 9 (depends on 8)

The method of claim 8, wherein the backup snapshot is a first backup snapshot of the plurality of backup snapshots, the method further comprising:
identifying a plurality of versions of the object across the plurality of backup snapshots that includes the backup snapshot;
selecting a first version of the object from the plurality of versions of the object; and
rolling back the object to be the first version of the object.

### Claim 10 (depends on 1)

The method of claim 1, wherein the backup snapshot has a corresponding encoding and storage format.

### Claim 11 (depends on 10)

The method of claim 10, wherein each object included in the backup snapshot has a corresponding encoding and storage format.

### Claim 12 (depends on 1)

The method of claim 1, wherein using the interface associated with the object includes evaluating the reconstructed object in the native application format associated with the object.

### Claim 13 (depends on 12)

The method of claim 12, wherein evaluating the reconstructed object in the native application format associated with the object includes interpreting a structure and content of the reconstructed object.

### Claim 14

A computer program product, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:
accessing, by a second storage system, a backed up version of an object that was backed up to the second storage system from a first storage system, wherein the object was included in a backup snapshot that includes one or more other objects, wherein accessing the backed up version of the object includes accessing a key-value store maintained by the second storage system to determine offsets for the object as stored by the second storage system, wherein the backed up version of the object is stored in a backup format associated with the second storage system that is different from a native application format associated with the object;
reconstructing the object from the backup format associated with the second storage system to the native application format associated with the object using object data chunks accessed at the determined offsets;
evaluating the object using an interface associated with the object; and
building a searchable index of the backup snapshot based on the evaluation of the object.

### Claim 15 (depends on 14)

The computer program product of claim 14, wherein using the interface associated with the object includes identifying nested objects within the object.

### Claim 16 (depends on 15)

The computer program product of claim 15, wherein evaluating the object using the interface associated with the object further includes using a respective interface to access the identified nested objects and identify contents of the identified nested objects.

### Claim 17 (depends on 16)

The computer program product of claim 16, wherein the identified nested objects include one or more word processing application objects, one or more image editing application objects, and/or one or more enterprise service application objects.

### Claim 18 (depends on 14)

The computer program product of claim 14, wherein the object is a virtual machine disk drive file.

### Claim 19

A system, comprising:
a processor associated with a second storage system configured to:
access a backed up version of an object that was backed up to the second storage system from a first storage system, wherein the object was included in a backup snapshot that includes one or more other objects, wherein accessing the backed up version of the object includes accessing a key-value store maintained by the second storage system to determine offsets for the object as stored by the second storage system, wherein the backed up version of the object is stored in a backup format associated with the second storage system that is different from a native application format associated with the object;
reconstruct the object from the backup format associated with the second storage system to the native application format associated with the object using object data chunks accessed at the determined offsets;
evaluate the object using an interface associated with the object; and
build a searchable index of the backup snapshot based on the evaluation of the object; and
a memory coupled to the processor, wherein the memory provides the processor with instructions.

### Claim 20 (depends on 19)

The system of claim 19, wherein the object is a virtual machine disk drive file.
