IP Library Granted Patent US 12,657,162
Granted Patent B2
US 12,657,162 · App. 18/234,822 · Granted Jun 16, 2026

File system metadata deduplication

Inventors: Anubhav Gupta (Sunnyvale, CA); Sachin Jain (Fremont, CA); Shreyas Talele (Santa Clara, CA); Zhihuan Qiu (San Jose, CA)
Assignee: Cohesity, Inc.
G06F16/174G06F16/14G06F16/184G06F16/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 12,657,162
App. No.
18/234,822
Granted
Jun 16, 2026
Kind
B2
Abstract

File metadata structures of a file system are analyzed. At least one metadata element that is duplicated among the analyzed file metadata structures is identified. The at least one identified metadata element is deduplicated including by modifying at least one of the file metadata structures to reference a same instance of the identified metadata element that is referenced by another one of the file metadata structures.

Claims (30)

1 . A method, comprising:

analyzing file metadata structures of a file system, wherein each of the file metadata structures includes a plurality of metadata elements;

identifying a portion of the file metadata structures that is duplicated among the analyzed file metadata structures, wherein instances of the identified portion of the file metadata structures are associated with a common sequence of values, wherein the instances of the identified portion of the file metadata structures include a first instance that at least includes a first leaf node of a first file metadata structure of the file metadata structures and a second leaf node of the first file metadata structure, and a second instance that at least includes a first leaf node of a second file metadata structure of the file metadata structures and a second leaf node of the second file metadata structure; and

deduplicating the instances of the identified portion of the file metadata structures at least in part by updating a node of the second file metadata structure to include a reference to an intermediate node associated with the first instance of the identified portion of the file metadata structures and deleting at least part of a node of the identified portion of the file metadata structures, wherein the intermediate node associated with the first instance of the identified portion of the file metadata structures is a child node of a root node of the first instance of the identified portion of the file metadata structures and is a parent node to the first leaf node of the first instance of the identified portion of the file metadata structures.

2 . The method of claim 1 , wherein analyzing the file metadata structures of the file system comprises scanning a bottom level of the file metadata structures and a level above the bottom level of the file metadata structures.

3 . The method of claim 1 , wherein at least one of the first file metadata structure and the second file metadata structure corresponds to a file generated by a storage system.

4 . The method of claim 1 , wherein at least one of first file metadata structure and the second file metadata structure corresponds to a file backed up from a primary system to a storage system.

5 . The method of claim 1 , wherein identifying the portion of the file metadata structures that is duplicated among the analyzed file metadata structures further comprises identifying the first instance of the identified portion of the file metadata structures and the second instance of the identified portion of the file metadata structures from the file metadata structures of the file system.

6 . The method of claim 1 , wherein the plurality of metadata elements are configured to store a corresponding value, wherein at least the first leaf node of the first file metadata structure and the second leaf node of the first file metadata structure store a corresponding sequence of values that is the same as a corresponding sequence of values stored by the first leaf node of the second file metadata structure and the second leaf node of the second file metadata structure.

7 . The method of claim 1 , wherein deduplicating the instances of the identified portion of the file metadata structures includes determining that a first reference count of the node associated with the first instance of the identified portion is greater than a second reference count of a node associated with a second instance of the identified portion.

8 . The method of claim 7 , wherein the first reference count of a common node associated with the first instance of the identified portion indicates more metadata elements reference the node associated with the first instance of the identified portion than the node associated with the second instance of the identified portion.

9 . The method of claim 7 , wherein deduplicating the instances of the identified portion of the file metadata structures further includes deleting, responsive to the determination that the first reference count of the node associated with the first instance of the identified portion is greater than the second reference count of the node associated with the second instance of the identified portion, the node associated with the second instance of the identified portion.

10 . The method of claim 9 , wherein deduplicating the instances of the identified portion of the file metadata structures further includes deleting one or more nodes directly referenced by the node associated with the second instance of the identified portion.

11 . The method of claim 9 , wherein deduplicating the instances of the identified portion of the file metadata structures further includes deleting one or more nodes indirectly referenced by the node associated with the second instance of the identified portion.

12 . The method of claim 9 , wherein the node associated with the second instance of the identified portion is deleted from a solid state disk of a storage system.

13 . The method of claim 1 , wherein the instances of the identified portion of the file metadata structures are deduplicated as a background process of a storage system.

14 . The method of claim 13 , wherein the storage system is comprised of a plurality of storage nodes, wherein the metadata associated with a plurality of files is stored across the plurality of storage nodes.

15 . The method of claim 1 , wherein deduplicating the instances of the identified portion of the file metadata structures includes determining that a first reference count of the node associated with the first instance of the identified portion is the same as a second reference count of a node associated with a second instance of the identified portion.

16 . The method of claim 15 , wherein deduplicating the instances of the identified portion of the file metadata structures includes selecting, responsive to the determination that the first reference count of the node associated with the first instance of the identified portion is greater than the second reference count of the node associated with the second instance of the identified portion, to reference the node associated with the first instance of the identified portion of the file metadata structures.

17 . A computer program product, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions that configure a processor to:

analyze file metadata structures of a file system, wherein each of the file metadata structures includes a plurality of metadata elements;

identify a portion of the file metadata structures that is duplicated among the analyzed file metadata structures, wherein instances of the identified portion of the file metadata structures are associated with a common sequence of values, wherein the instances of the identified portion of the file metadata structures include a first instance that at least includes a first leaf node of a first file metadata structure of the file metadata structures and a second leaf node of the first file metadata structure, and a second instance that at least includes a first leaf node of a second file metadata structure of the file metadata structures and a second leaf node of the second file metadata structure; and

deduplicate the instances of the identified portion of the file metadata structures at least in part by updating a node of the second file metadata structure to include a reference to an intermediate node associated with the first instance of the identified portion of the file metadata structures and deleting at least part of a node of the identified portion of the file metadata structures, wherein the intermediate node associated with the first instance of the identified portion of the file metadata structures is a child node of a root node of the first instance of the identified portion of the file metadata structures and is a parent node to the first leaf node of the first instance of the identified portion of the file metadata structures.

18 . The computer program product of claim 17 , wherein to analyze the file metadata structures of the file system the computer instructions configure the processor to scan a bottom level of the file metadata structures and a level above the bottom level of the file metadata structures.

19 . The computer program product of claim 17 , wherein the plurality of metadata elements are configured to store a corresponding value, wherein at least the first leaf node of the first file metadata structure and the second leaf node of the first file metadata structure store a corresponding sequence of values that is the same as a corresponding sequence of values stored by the first leaf node of the second file metadata structure and the second leaf node of the second file metadata structure.

20 . A system, comprising:

a processor coupled to a memory, the memory storing instructions to configure the processor to:

analyze file metadata structures of a file system, wherein each of the file metadata structures includes a plurality of metadata elements;

identify a portion of the file metadata structures that is duplicated among the analyzed file metadata structures, wherein instances of the identified portion of the file metadata structures are associated with a common sequence of values, wherein the instances of the identified portion of the file metadata structures include a first instance that at least includes a first leaf node of a first file metadata structure of the file metadata structures and a second leaf node of the first file metadata structure, and a second instance that at least includes a first leaf node of a second file metadata structure of the file metadata structures and a second leaf node of the second file metadata structure; and

deduplicate the instances of the identified portion of the file metadata structures at least in part by updating a node of the second file metadata structure to include a reference to an intermediate node associated with the first instance of the identified portion of the file metadata structures and deleting at least part of a node of the identified portion of the file metadata structures, wherein the intermediate node associated with the first instance of the identified portion of the file metadata structures is a child node of a root node of the first instance of the identified portion of the file metadata structures and is a parent node to the first leaf node of the first instance of the identified portion of the file metadata structures.

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 Nov 15, 2023
From: GUPTA, ANUBHAV; JAIN, SACHIN; TALELE, SHREYAS; QIU, ZHIHUAN
To: COHESITY, INC.
Reel/Frame 065584/0196 →
Continuity (3)
Continuation 16854153 · Apr 21, 2020
Provisional Application 62840614 · Apr 30, 2019
Related Publication 20230394010A1 · Dec 7, 2023
References Cited (65)
US 8108353B2 · Balachandran · 2012 [cited by applicant]
US 9235588B1 · Vaikar · 2016 [cited by applicant]
US 9329942B2 · Chavda · 2016 [cited by applicant]
US 9690801B1 · Ioannou et al. · 2017 [cited by applicant]
US 10133508B1 · Smaldone · 2018 [cited by applicant]
US 10706014B1 · Gupta · 2020 [cited by applicant]
US 10745731B2 · Arumugam · 2020 [cited by applicant]
US 11474673B1 · Abdul-Jawad et al. · 2022 [cited by applicant]
US 11775482B2 · Gupta et al. · 2023 [cited by applicant]
US 11797220B2 · Qu et al. · 2023 [cited by applicant]
US 20090271454A1 · Anglin et al. · 2009 [cited by applicant]
US 20090300321A1 · Balachandran · 2009 [cited by applicant]
US 20090313248A1 · Balachandran · 2009 [cited by applicant]
US 20100161608A1 · Sanjay · 2010 [cited by applicant]
US 20100250501A1 · Mandagere et al. · 2010 [cited by applicant]
US 20100333116A1 · Prahlad et al. · 2010 [cited by applicant]
US 20110225130A1 · Tokoro · 2011 [cited by applicant]
US 20130018855A1 · Eshghi et al. · 2013 [cited by applicant]
US 20130041872A1 · Aizman et al. · 2013 [cited by applicant]
US 20130086006A1 · Colgrove et al. · 2013 [cited by applicant]
US 20130097380A1 · Colgrove · 2013 [cited by applicant]
US 20130238832A1 · Dronamraju · 2013 [cited by applicant]
US 20130268496A1 · Baldwin et al. · 2013 [cited by applicant]
US 20130282672A1 · Tashiro et al. · 2013 [cited by applicant]
US 20140114932A1 · Mallaiah et al. · 2014 [cited by applicant]
US 20140281217A1 · Beam · 2014 [cited by applicant]
US 20150356109A1 · Arikawa et al. · 2015 [cited by applicant]
US 20160026652A1 · Zheng · 2016 [cited by applicant]
US 20160034356A1 · Aron · 2016 [cited by applicant]
US 20170031768A1 · Sarab · 2017 [cited by examiner]
US 20170131934A1 · Kaczmarczyk et al. · 2017 [cited by applicant]
US 20170351698A1 · Ioannou · 2017 [cited by examiner]
US 20180081821A1 · Beaverson · 2018 [cited by applicant]
US 20180329631A1 · Swift · 2018 [cited by applicant]
US 20180364949A1 · Aston · 2018 [cited by applicant]
US 20190121673A1 · Gold et al. · 2019 [cited by applicant]
US 20190130434A1 · Lurie et al. · 2019 [cited by applicant]
US 20200081644A1 · Jeyaram · 2020 [cited by applicant]
US 20200125450A1 · Aron et al. · 2020 [cited by applicant]
US 20200272492A1 · Guturi · 2020 [cited by applicant]
US 20210109900A1 · McIlroy et al. · 2021 [cited by applicant]
US 20210117441A1 · Patel et al. · 2021 [cited by applicant]
US 20210303155A1 · Meister · 2021 [cited by applicant]
US 20210303519A1 · Periyagaram et al. · 2021 [cited by applicant]
US 20210365296A1 · Shilane · 2021 [cited by applicant]
CN 109154881A · 2019 [cited by applicant]
WO 2018075042 · 2018 [cited by applicant]
Thwel et al., “An Efficient Indexing Mechanism for Data Deduplication”, Current Trends in Information Technology (CTIT), 2009 International Conference On The, IEEE, Piscataway, NJ, USA, Dec. 15, 2009 (Dec. 15, 2009), pp… [cited by applicant]
Communication pursuant to Article 94(3) EPC from counterpart European Application No. 20727042.2 dated Jun. 28, 2023, 8 pp. [cited by applicant]
First Examination Report from counterpart Indian Application No. 202147054410 dated Nov. 20, 2023, 7 pp. [cited by applicant]
International Preliminary Report on Patentability from International Application No. PCT/US2020/030511 dated Nov. 2, 2021, 6 pp. [cited by applicant]
International Search Report and Written Opinion of International Application No. PCT/US2020/030511 dated Jul. 20, 2020, 9 pp. [cited by applicant]
Notice of Intent to Grant and Text Intended to Grant from counterpart European Application No. 20727042.2 dated Feb. 19, 2024, 129 pp. [cited by applicant]
Prosecution History from U.S. Appl. No. 16/854,153, now issued U.S. Pat. No. 11,775,482, dated Jul. 13, 2021 through Aug. 28, 2023, 149 pp. [cited by applicant]
Response to Communication pursuant to Article 94(3) EPC dated Jun. 28, 2023, from counterpart European Application No. 20727042.2 filed Nov. 2, 2023, 25 pp. [cited by applicant]
Fu et al., “Design Tradeoffs for Data Deduplication Performance in Backup Workloads”, 13th USENIX Conference on File and Storage Technologies (FAST '15), Feb. 2015, 331-344 pp. [cited by applicant]
Kaplan et al., “From Processing-in-Memory to Processing-in-Storage”, Supercomputing Frontiers and Innovations, vol. 4, No. 3, Jan. 2017, 99-116 pp. [cited by applicant]
Li et al., “Efficient Hybrid Inline and Out-of-Line Deduplication for Backup Storage”, Oct. 12, 2018, 21 pp. [cited by applicant]
Ma et al., “Lazy Exact DedupMA et al., Lazy Exact Deduplication”, College of Computer and Control Engineering, Jan. 2017, 10 pp. [cited by applicant]
Mohan et al., “Inline vs. Post-Process Deduplication and Compression”, DataCore, Mar. 8, 2021, 13 pp., https://www.datacore.com/blog/inline-vs-post-process-deduplication-compression/. [cited by applicant]
Wang et al., “I-sieve: An Inline High Performance Deduplication System Used in Cloud Storage”, Tsinghua Science and Technology, vol. 20, No. 1, Feb. 2015, 17-27 pp. [cited by applicant]
Wu et al., “HPDedup: A Hybrid Prioritized Data Deduplication Mechanism for Primary Storage in the Cloud”, Jan. 2017, 14 pp. [cited by applicant]
Extended Search Report from counterpart European Application No. 24184870.4 dated Nov. 7, 2024, 9 pp. [cited by applicant]
Office Action, and translation thereof, from counterpart Chinese Application No. 202080032635.3 dated Oct. 31, 2024, 17 pp. [cited by applicant]
Notice of Intent to Grant from counterpart Chinese Application No. 202080032635.3 dated Apr. 28, 2025, 4 pp. [cited by applicant]