IP Library Granted Patent US 11,914,485
Granted Patent B2
US 11,914,485 · App. 17/709,153 · Granted Feb 27, 2024

Restoration of specified content from an archive

Inventors: Prashant Pogde (Sunnyvale, CA); Markose Thomas (San Jose, CA); Venkata Ranga Radhanikanth Guturi (San Jose, CA); Akshat Agarwal (Delhi, IN); Praveen Kumar Yarlagadda (Santa Clara, CA)
Assignee: Cohesity, Inc.
G06F11/1469G06F16/113G06F16/128G06F16/2246G06F2201/84
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 11,914,485
App. No.
17/709,153
Granted
Feb 27, 2024
Kind
B2
Abstract

A request to obtain an identified content item is received. It is determined that the identified content item is stored in a plurality of locations. It is determined to obtain the identified content item from a first storage location storing a first serialized representation of a file system snapshot that includes the identified content item and a second storage location storing a second serialized representation of the file system snapshot that includes the identified content item based on available resources associated with the plurality of locations. The identified content item is extracted from the first serialized representation at the first storage location and from the second serialized representation at the second storage location including building a stubbed tree data structure using the first serialized representation and the second serialized representation. The extracted identified content item is provided using the stubbed tree data structure.

Claims (48)

1. A method, comprising:

receiving at a storage system a request to obtain an identified content item;

determining that the identified content item is stored in a plurality of locations, wherein the locations are remote from the storage system;

based on available resources associated with the plurality of locations, determining, by the storage system, to obtain a first portion of a first serialized representation of a file system snapshot that includes the identified content item from a first storage location and a second portion of a second serialized representation of the file system snapshot that includes the identified content item from a second storage location, wherein the first serialized representation of the file system snapshot and the second serialized representation of the file system snapshot are redundant serialized representations of the file system snapshot, wherein a corresponding property associated with the available resources associated with the plurality of locations includes a corresponding latency, wherein the first storage location or the second storage location has an associated latency that is lower when compared to corresponding latencies associated with other locations of the plurality of locations;

obtaining the first portion of the first serialized representation of the file system snapshot from the first storage location and the second portion of the second serialized representation of the file system snapshot from the second storage location;

building a stubbed tree data structure using the first serialized representation of the file system snapshot and the second serialized representation of the file system snapshot, wherein the stubbed tree data structure is a partial representation of a tree data structure that represents a file system, the stubbed tree data structure including at least a root node, one of one or more intermediate nodes, and one of one or more leaf nodes, wherein a first leaf node of the one or more leaf nodes corresponds to the identified content item;

obtaining, by the storage system, data of the identified content item utilizing the first serialized representation of the file system snapshot and the second serialized representation of the file system snapshot; and

providing, by the storage system to a client system, the obtained data of the identified content item using the stubbed tree data structure.

2. The method of claim 1 , wherein the plurality of locations are enumerated in an index.

3. The method of claim 2 , further comprising searching the index for the identified content item.

4. The method of claim 3 , wherein the index is searched based on a specified search term, a first specified name of a file, a second specified name of a data structure, and/or a third specified name of a directory.

5. The method of claim 1 , further comprising selecting the first storage location and the second storage location from the plurality of locations.

6. The method of claim 1 , further comprising:

providing the plurality of locations to a user; and

determining to obtain the identified content item from the first storage location and the second storage location in response to receiving a selection of the first storage location and the second storage location.

7. The method of claim 1 , wherein at least one of the first storage location and the second storage location is a cloud storage location.

8. The method of claim 1 , wherein the building the stubbed tree data structure further includes reading at least the first portion of the first serialized representation of the file system snapshot from the first storage location and at least the second portion of the second serialized representation of the file system snapshot from the second storage location.

9. The method of claim 1 , wherein the building the stubbed tree data structure includes building the stubbed tree data structure such that the stubbed tree data structure is populated only by the identified content item.

10. The method of claim 1 , further comprising determining the plurality of locations storing the identified content item.

11. The method of claim 1 , wherein the first serialized representation of the file system snapshot and the second serialized representation of the file system snapshot are the same.

12. A computer program product for obtaining an identified content item, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

receiving at a storage system a request to obtain an identified content item;

determining that the identified content item is stored in a plurality of locations, wherein the locations are remote from the storage system;

based on available resources associated with the plurality of locations, determining, by the storage system, to obtain a first portion of a first serialized representation of a file system snapshot that includes the identified content item from a first storage location and a second portion of a second serialized representation of the file system snapshot that includes the identified content item from a second storage location, wherein the first serialized representation of the file system snapshot and the second serialized representation of the file system snapshot are redundant serialized representations of the file system snapshot, wherein a corresponding property associated with the available resources associated with the plurality of locations includes a corresponding latency, wherein the first storage location or the second storage location has an associated latency that is lower when compared to corresponding latencies associated with other locations of the plurality of locations;

obtaining the first portion of the first serialized representation of the file system snapshot from the first storage location and the second portion of the second serialized representation of the file system snapshot from the second storage location;

building a stubbed tree data structure using the first serialized representation of the file system snapshot and the second serialized representation of the file system snapshot, wherein the stubbed tree data structure is a partial representation of a tree data structure that represents a file system, the stubbed tree data structure including at least a root node, one of one or more intermediate nodes, and one of one or more leaf nodes, wherein a first leaf node of the one or more leaf nodes corresponds to the identified content item;

obtaining, by the storage system, data of the identified content item utilizing the first serialized representation of the file system snapshot and the second serialized representation of the file system snapshot; and

providing, by the storage system to a client system, the obtained data of the identified content item using the stubbed tree data structure.

13. The computer program product of claim 12 , wherein the plurality of locations are enumerated in an index.

14. The computer program product of claim 13 , further comprising computer instructions for searching the index for the identified content item.

15. The computer program product of claim 12 , further comprising instructions for:

providing the plurality of locations to a user; and

determining to obtain the identified content item from the first storage location and the second storage location in response to receiving a selection of the first storage location and the second storage location.

16. The computer program product of claim 12 , wherein at least one of the first storage location and the second storage location is a cloud storage location.

17. The computer program product of claim 12 , wherein the building the stubbed tree data structure further includes reading at least the first portion of the first serialized representation of the file system snapshot from the first storage location and at least the second portion of the second serialized representation of the file system snapshot from the second storage location.

18. The computer program product of claim 12 , wherein the building the stubbed tree data structure includes building the stubbed tree data structure such that the stubbed tree data structure is populated only by the identified content item.

19. The computer program product of claim 12 , further comprising computer instructions for determining the plurality of locations storing the identified content item.

20. A storage system, comprising:

a processor configured to:

receive a request to obtain an identified content item;

determine that the identified content item is stored in a plurality of locations, wherein the locations are remote from the storage system;

based on available resources associated with the plurality of locations, determine to obtain a first portion of a first serialized representation of a file system snapshot that includes the identified content item from a first storage location and a second portion of a second serialized representation of the file system snapshot that includes the identified content item from a second storage location, wherein the first serialized representation of the file system snapshot and the second serialized representation of the file system snapshot are redundant serialized representations of the file system snapshot, wherein a corresponding property associated with the available resources associated with the plurality of locations includes a corresponding latency, wherein the first storage location or the second storage location has an associated latency that is lower when compared to corresponding latencies associated with other locations of the plurality of locations;

obtain the first portion of the first serialized representation of the file system snapshot from the first storage location and the second portion of the second serialized representation of the file system snapshot from the second storage location;

build a stubbed tree data structure using the first serialized representation of the file system snapshot and the second serialized representation of the file system snapshot, wherein the stubbed tree data structure is a partial

representation of a tree data structure that represents a file system, the stubbed tree data structure including at least a root node, one of one or more intermediate nodes, and one of one or more leaf nodes, wherein a first leaf node of the one or more leaf nodes corresponds to the identified content item;

obtain, by the storage system, data of the identified content item utilizing the first serialized representation of the file system snapshot and the second serialized representation of the file system snapshot; and

provide to a client system the obtained data of the identified content item using the stubbed tree data structure; and

a memory coupled to the processor and configured to provide the processor with instructions.

Assignments (5)
TERMINATION AND RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Dec 10, 2024
From: FIRST-CITIZENS BANK & TRUST COMPANY (AS SUCCESSOR TO SILICON VALLEY BANK)
To: COHESITY, INC.
Reel/Frame 069584/0498 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2022
From: POGDE, PRASHANT; GUTURI, VENKATA RANGA RADHANIKANTH; AGARWAL, AKSHAT; YARLAGADDA, PRAVEEN KUMAR
To: COHESITY, INC.
Reel/Frame 061260/0959 →
SECURITY INTEREST Recorded Sep 23, 2022
From: COHESITY, INC.
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 061509/0818 →
EMPLOYEE AGREEMENT Recorded Mar 31, 2022
From: THOMAS, MARKOSE
To: COHESITY, INC.
Reel/Frame 060957/0618 →
Continuity (4)
Continuation 16299060 · Mar 11, 2019
Continuation In Part 15721429 · Sep 29, 2017
Provisional Application 62555456 · Sep 7, 2017
Related Publication 20220222154A1 · Jul 14, 2022