IP Library Granted Patent US 10,949,384
Granted Patent B2
US 10,949,384 · App. 16/426,390 · Granted Mar 16, 2021

Using a storage system to optimize and maintain the metadata associated with a plurality of small files

Inventors: Apurv Gupta (Bangalore, IN); Anirvan Duttagupta (San Jose, CA)
Assignee: Cohesity, Inc.
G06F16/128G06F16/113G06F16/907G06F16/9027
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,949,384
App. No.
16/426,390
Granted
Mar 16, 2021
Kind
B2
Abstract

A size associated with a first content file is determined to be less than a threshold size. In response to determining that the size associated with the first content file is less than the threshold size, a combined metadata structure is updated at least in part by combining metadata of the first content file with metadata of a second content file in the combined metadata structure. A snapshot tree is updated to reference a first portion of the combined metadata structure corresponding to the first content file and to reference a second portion of the combined metadata structure corresponding to the second content file.

Claims (43)

1. A method, comprising:

determining that a size associated with a first content file is less than a file threshold size, wherein metadata of the first content file is organized using a first file metadata structure, wherein the first file metadata structure comprises a first root node, a first plurality of intermediate nodes, and a first plurality of leaf nodes with corresponding references to data chunks of the first content file;

in response to a determination that the size associated with the first content file is less than the file threshold size, updating a combined metadata structure at least in part by combining in the combined metadata structure the metadata of the first content file with metadata of a second content file included in a second file metadata structure, wherein the size associated with the second content file is less than the file threshold size, wherein the second file metadata structure comprises a second root node, a second plurality of intermediate nodes, and a second plurality of leaf nodes with corresponding references to data chunks of the second content file, wherein the combined metadata structure includes at least a third root node, the first plurality of leaf nodes and the second plurality of leaf nodes; and

updating a snapshot tree to reference a first portion of the combined metadata structure corresponding to the first content file and to reference a second portion of the combined metadata structure corresponding to the second content file, wherein updating the snapshot tree to reference the first portion of the combined metadata structure corresponding to the first content file and to reference the second portion of the combined metadata structure corresponding to the second content file includes:

using a combined metadata structure reservation node of the snapshot tree to reserve corresponding offset ranges of the combined metadata structure for the metadata of the first content file and the metadata of the second content file; and

updating corresponding leaf nodes of the snapshot tree to indicate the corresponding offset ranges of the combined metadata structure for the metadata of the first content file and the metadata of the second content file, wherein the corresponding leaf nodes of the snapshot tree are updated to reference the third root node of the combined metadata structure.

2. The method of claim 1 , further comprising receiving an updated version of the first content file.

3. The method of claim 2 , further comprising:

determining a size associated with the updated version of the first content file is greater than or equal to the file threshold size; and

removing the metadata of the first content file from the combined metadata structure.

4. The method of claim 3 , further comprising replacing the metadata of the first content file with metadata of a third content file.

5. The method of claim 2 , further comprising:

cloning the metadata associated with the first content file; and

modifying the cloned metadata associated with the first content file based on the updated version of the first content file.

6. The method of claim 1 , further comprising receiving a backup snapshot that includes the first content file.

7. The method of claim 6 , wherein the size associated with the first content file is determined based on the size of the first content file included in the backup snapshot.

8. The method of claim 1 , further comprising determining the size associated with the first content file based in part by traversing a view of file system data corresponding to a backup snapshot.

9. The method of claim 1 , wherein a first leaf node of the snapshot tree that corresponds to the first content file is associated with a first file offset range of the combined metadata structure.

10. The method of claim 9 , wherein a second leaf node of the snapshot tree that corresponds to the second content file is associated with a second file offset range of the combined metadata structure.

11. The method of claim 1 , further comprising generating a view of file system data corresponding to a backup snapshot, wherein the view includes the snapshot tree and the combined metadata structure.

12. The method of claim 11 , wherein a leaf node of the snapshot tree includes a pointer to the combined metadata structure.

13. The method of claim 12 , further comprising updating the pointer of the leaf node of the snapshot tree to reference the combined metadata structure instead of referencing the first file metadata structure that corresponds to the first content file.

14. The method of claim 1 , wherein a node included in the combined metadata structure has a corresponding reference count.

15. The method of claim 14 , wherein the corresponding reference count indicates a number of views of file system data corresponding to backup snapshots that include a reference to the node included in the combined metadata structure.

16. The method of claim 14 , further comprising:

determining that a retention time policy condition associated with a backup snapshot has been satisfied;

determining one or more content files associated with the backup snapshot and associated metadata to be deleted based in part on the corresponding reference count; and

deleting the one or more determined content files and associated metadata.

17. The method of claim 16 , wherein the one or more content files associated with the backup snapshot are determined to be deleted in the event the corresponding reference count is zero.

18. A computer program product, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

determining that a size associated with a first content file is less than a file threshold size, wherein metadata of the first content file is organized using a first file metadata structure, wherein the first file metadata structure comprises a first root node, a first plurality of intermediate nodes, and a first plurality of leaf nodes with corresponding references to data chunks of the first content file;

in response to a determination that the size associated with the first content file is less than the file threshold size, updating a combined metadata structure at least in part by combining in the combined metadata structure the metadata of the first content file with metadata of a second content file included in a second file metadata structure, wherein the size associated with the second content file is less than the file threshold size, wherein the second file metadata structure comprises a second root node, a second plurality of intermediate nodes, and a second plurality of leaf nodes with corresponding references to data chunks of the second content file, wherein the combined metadata structure includes at least a third root node, the first plurality of leaf nodes and the second plurality of leaf nodes; and

updating a snapshot tree to reference a first portion of the combined metadata structure corresponding to the first content file and to reference a second portion of the combined metadata structure corresponding to the second content file, wherein updating the snapshot tree to reference the first portion of the combined metadata structure corresponding to the first content file and to reference the second portion of the combined metadata structure corresponding to the second content file includes:

using a combined metadata structure reservation node of the snapshot tree to reserve corresponding offset ranges of the combined metadata structure for the metadata of the first content file and the metadata of the second content file; and

updating corresponding leaf nodes of the snapshot tree to indicate the corresponding offset ranges of the combined metadata structure for the metadata of the first content file and the metadata of the second content file, wherein the corresponding leaf nodes of the snapshot tree are updated to reference the third root node of the combined metadata structure.

19. A system, comprising:

a processor configured to:

determine that a size associated with a first content file is less than a file threshold size, wherein metadata of the first content file is organized using a first file metadata structure, wherein the first file metadata structure comprises a first root node, a first plurality of intermediate nodes, and a first plurality of leaf nodes with corresponding references to data chunks of the first content file;

in response to determining that the size associated with the first content file is less than the file threshold size, update a combined metadata structure at least in part by combining in the combined metadata structure the metadata of the first content file with metadata of a second content file included in a second file metadata structure, wherein the size associated with the second content file is less than the file threshold size, wherein the second file metadata structure comprises a second root node, a second plurality of intermediate nodes, and a second plurality of leaf nodes with corresponding references to data chunks of the second content file, wherein the combined metadata structure includes at least a third root node, the first plurality of leaf nodes and the second plurality of leaf nodes; and

update a snapshot tree to reference a first portion of the combined metadata structure corresponding to the first content file and to reference a second portion of the combined metadata structure corresponding to the second content file, wherein to update the snapshot tree to reference the first portion of the combined metadata structure corresponding to the first content file and to reference the second portion of the combined metadata structure corresponding to the second content file, the processor is configured to:

use a combined metadata structure reservation node of the snapshot tree to reserve corresponding offset ranges of the combined metadata structure for the metadata of the first content file and the metadata of the second content file; and

update corresponding leaf nodes of the snapshot tree to indicate the corresponding offset ranges of the combined metadata structure for the metadata of the first content file and the metadata of the second content file, wherein the corresponding leaf nodes of the snapshot tree are updated to reference the third root node of the combined metadata structure; and

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

Assignments (4)
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 →
SECURITY INTEREST Recorded Sep 23, 2022
From: COHESITY, INC.
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 061509/0818 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 20, 2019
From: GUPTA, APURV; DUTTAGUPTA, ANIRVAN
To: COHESITY, INC.
Reel/Frame 050108/0078 →
Continuity (2)
Provisional Application 62693742 · Jul 3, 2018
Related Publication 20200012619A1 · Jan 9, 2020
Cited By (1)
US 12,248,432