IP Library Granted Patent US 12,248,432
Granted Patent B2
US 12,248,432 · App. 18/224,979 · Granted Mar 11, 2025

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

Inventors: Apurv Gupta (Bengaluru, IN); Anirvan Duttagupta (San Jose, CA)
Assignee: Cohesity, Inc.
G06F16/128G06F16/113G06F16/9027G06F16/907
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 12,248,432
App. No.
18/224,979
Granted
Mar 11, 2025
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 (44)

1. A method, comprising:

determining, by a storage system receiving a first content file from a storage device, that a storage size associated with the first content file is less than a threshold size, wherein metadata of the first content file is represented by a first file metadata structure;

in response to the determination that the storage size associated with the first content file is less than the threshold size updating, by the storage system, a combined metadata structure at least by:

determining, by the storage system and from a combined metadata structure reservation node of a tree data structure, an offset range associated with the combined metadata structure;

attempting, by the storage system, to successfully obtain a lock for the combined metadata structure;

in response to successfully obtaining the lock for the combined metadata structure, reserving, by the storage system, the offset range associated with the combined metadata structure; and

combining in the combined metadata structure, the metadata represented by the first file metadata structure with metadata of a second content file, the metadata of the second content file represented by a second file metadata structure, wherein a storage size associated with the second content file is less than the threshold size; and

updating, by the storage system, the tree data structure at least by updating a first reference that references a first root node of the first file metadata structure to reference a first portion of the combined metadata structure corresponding to the first content file and updating a second reference that references a second root node of the second file metadata structure to reference a second portion of the combined metadata structure corresponding to the second content file.

2. The method of claim 1 , wherein the combined metadata structure reservation node includes information associated with a plurality of combined metadata structures, wherein the plurality of combined metadata structures includes the combined metadata structure.

3. The method of claim 2 , wherein the information associated with the plurality of combined metadata structures includes offset ranges associated with each of the plurality of combined metadata structures, available offset ranges associated with each of the plurality of combined metadata structures, and/or a reserved offset range associated with the combined metadata structure.

4. The method of claim 2 , wherein a number of the plurality of combined metadata structures is a preset number.

5. The method of claim 2 , further comprising selecting, by the storage system, the combined metadata structure from a plurality of combined metadata structures.

6. The method of claim 5 , wherein selecting the combined metadata structure comprises selecting, by the storage system, the combined metadata structure based on an available offset range associated with the combined metadata structure.

7. The method of claim 5 , wherein selecting the combined metadata structure comprises selecting, by the storage system, the combined metadata structure based on an assignment policy.

8. The method of claim 1 , wherein reserving the offset range associated with the combined metadata structure includes updating, by the storage system, a data structure of the combined metadata structure reservation node.

9. The method of claim 1 , further comprising releasing, by the storage system, the lock for the combined metadata structure after combining in the combined metadata structure the metadata of the first content file with the metadata of the second content file.

10. The method of claim 1 , further comprising receiving, by the storage system, an updated version of the first content file.

11. The method of claim 10 , further comprising:

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

removing, by the storage system, the metadata of the first content file from the combined metadata structure.

12. Non-transitory computer-readable media storing instructions that, when executed, cause processing circuitry to

determine, by receiving a first content file from a storage device, that a storage size associated with the first content file is less than a threshold size, wherein metadata of the first content file is represented by a first file metadata structure;

in response to the determination that the storage size associated with the first content file is less than the threshold size update a combined metadata structure at least by:

determining, from a combined metadata structure reservation node of a tree data structure, an offset range associated with the combined metadata structure;

attempting to successfully obtain a lock for the combined metadata structure;

in response to successfully obtaining the lock for the combined metadata structure, reserving the offset range associated with the combined metadata structure; and

combining in the combined metadata structure, the metadata represented by of the first file metadata structure with metadata of a second content file, the metadata of the second content file represented by a second file metadata structure, wherein a storage size associated with the second content file is less than the threshold size; and

update the tree data structure at least by updating a first reference that references a first root node of the first file metadata structure to reference a first portion of the combined metadata structure corresponding to the first content file and updating a second reference that references a second root node of the second file metadata structure to reference a second portion of the combined metadata structure corresponding to the second content file.

13. The non-transitory computer readable storage media of claim 12 , wherein the instructions, when executed, cause the processing circuitry to release the lock for the combined metadata structure after combining in the combined metadata structure the metadata of the first content file with the metadata of the second content file.

14. A system, comprising:

one or more processors configured to:

determine, by receiving a first content file from a storage device, that a storage size associated with the first content file is less than a threshold size, wherein metadata of the first content file is represented by a first file metadata structure;

in response to the determination that the storage size associated with the first content file is less than the threshold size update a combined metadata structure at least by:

determining, from a combined metadata structure reservation node of a tree data structure, an offset range associated with the combined metadata structure;

attempting to successfully obtain a lock for the combined metadata structure;

in response to successfully obtaining the lock for the combined metadata structure, reserving the offset range associated with the combined metadata structure; and

combining in the combined metadata structure, the metadata represented by the first file metadata structure with metadata of a second content file, the metadata of the second content file represented by a second file metadata structure, wherein a storage size associated with the second content file is less than the threshold size; and

update the tree data structure at least by updating a first reference that references a first root node of the first file metadata structure to reference a first portion of the combined metadata structure corresponding to the first content file and updating a second reference that references a second root node of the second file metadata structure to reference a second portion of the combined metadata structure corresponding to the second content file; and

a memory coupled to the one or more processors and configured to provide the one or more processors with instructions.

15. The method of claim 1 , further comprising deleting, by the storage system, the first file metadata structure and the second file metadata structure after combining in the combined metadata structure the metadata of the first content file with the metadata of the second content file.

16. The non-transitory computer readable storage media of claim 12 , wherein to reserve the offset range associated with the combined metadata structure the instructions, when executed, cause the processing circuitry to update a data structure of the combined metadata structure reservation node.

17. The non-transitory computer readable storage media of claim 12 , wherein the instructions, when executed, cause the processing circuitry to delete the first file metadata structure and the second file metadata structure after combining in the combined metadata structure the metadata of the first content file with the metadata of the second content file.

18. The system of claim 14 , wherein to reserve the offset range associated with the combined metadata structure the one or more processors are configured to update a data structure of the combined metadata structure reservation node.

19. The system of claim 14 , wherein the one or more processors are configured to delete the first file metadata structure and the second file metadata structure after combining in the combined metadata structure the metadata of the first content file with the metadata of the second content file.

Assignments (2)
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 Dec 21, 2023
From: GUPTA, APURV; DUTTAGUPTA, ANIRVAN
To: COHESITY, INC.
Reel/Frame 065935/0413 →
Continuity (4)
Continuation 17174103 · Feb 11, 2021
Continuation 16426390 · May 30, 2019
Provisional Application 62693742 · Jul 3, 2018
Related Publication 20240045832A1 · Feb 8, 2024
References Cited (23)
US 6779095B2 · Selkirk · 2004 [cited by applicant]
US 10467107B1 · Abrol · 2019 [cited by applicant]
US 10949384B2 · Gupta et al. · 2021 [cited by applicant]
US 11023318B1 · Volkov · 2021 [cited by examiner]
US 11803513B2 · Gupta et al. · 2023 [cited by applicant]
US 20070055702A1 · Fridella · 2007 [cited by examiner]
US 20080270461A1 · Gordon · 2008 [cited by applicant]
US 20150134879A1 · Zheng · 2015 [cited by examiner]
US 20150370502A1 · Aron · 2015 [cited by applicant]
US 20160070618A1 · Pundir · 2016 [cited by examiner]
US 20170075781A1 · Bennett, Jr. · 2017 [cited by examiner]
US 20180165300A1 · Okun · 2018 [cited by examiner]
Chowdhury Farhan Ahmed; Efficient Tree Structures for High Utility Pattern Mining in Incremental Databases; IEEE 2009; pp. 1708-1721 (Year: 2009). [cited by examiner]
Cumulus: Filesystem Backup to the Cloud: Michael Vrabel; 2009; pp. 14.2-14.28 (Year: 2009). [cited by examiner]
Avinash Lakshman; Cassandra—A Decentralized Structured Storage System; Facebook; 2018; pp. 35-40. [cited by examiner]
Anonymous, “brad's life—Brackup 1.02”, May 28, 2007, retrieved from internet URL https://web.archive.org/web/20070528031712/http://brad.livejournal.com/2322125.html [retrieved on Aug. 27, 2019]. [cited by applicant]
Qing et al. “DeltaFS: Exascale File Systems Scale Better Without Dedicated Servers”; 2015; ACM; pp. 1-6. [cited by applicant]
Vrable et al., “Cumulus”, ACM Transactions on Storage, Association for Computing Machinery, New York, NY, US, vol. 5, No. 4, Dec. 14, 2009, pp. 1-28. [cited by applicant]
Wei Xu; An efficient and backwards-compatible transformation to ensure memory safety of C programs; SIGSOFT; 2004; pp. 117-126 (Year:2004). [cited by applicant]
International Preliminary Report on Patentability from International Application No. PCT/US2019/038771 dated Jan. 5, 2021, 7 pp. [cited by applicant]
International Search Report and Written Opinion of International Application No. PCT/US2019/038771 dated Sep. 6, 2019, 9 pp. [cited by applicant]
Prosecution History from U.S. Appl. No. 16/426,390, now issued U.S. Pat. No. 10,949,384, dated Jul. 16, 2019 through Nov. 25, 2020, 134 pp. [cited by applicant]
Prosecution History from U.S. Appl. No. 17/174,103, now issued U.S. Pat. No. 11,803,513, dated Apr. 23, 2021 through Oct. 6, 2023, 177 pp. [cited by applicant]