IP Library Granted Patent US 10,467,216
Granted Patent B2
US 10,467,216 · App. 15/632,121 · Granted Nov 5, 2019

Backup operations in a tree-based distributed file system

Inventors: Mohit Aron (Los Altos, CA); Ganesha Shanmuganathan (Santa Clara, CA)
Assignee: Cohesity, Inc.
G06F16/2246G06F11/1435G06F16/128G06F16/1873G06F2201/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 10,467,216
App. No.
15/632,121
Granted
Nov 5, 2019
Kind
B2
Abstract

Techniques for cloning, writing to, and reading from file system metadata. Cloning involves identifying a first set of pointers included in a first root node in a file system metadata tree structure that stores file system metadata n leaf nodes of the tree structure, creating a first copy of the first root node that includes the first set of pointers, creating a second copy of the first root node that includes the first set of pointers, associating the first copy with a first view, and associating the second copy with a second view. Reading generally involves traversing the tree structure towards a target leaf node that contains data to be read. Writing generally involves traversing the tree structure n the same manner, but also creating copies of any nodes to be modified if those nodes are deemed to have a different treeID than a particular root node.

Claims (34)

1. A method, comprising:

in response to a request to modify data of a file system, identifying for the request, a root node among a plurality of roots nodes of a file system metadata tree structure of the file system, wherein the file system metadata tree structure includes one or more intermediate nodes and one or more leaf nodes, and at least two of the roots nodes reference a same intermediate node among the one or more intermediate nodes of the file system metadata tree structure;

using the identified root node to identify an existing intermediate node included in the one or more intermediate nodes and an existing leaf node included in the one or more leaf nodes, wherein the identified existing intermediate node references the identified existing leaf node, and the identified existing leaf node corresponds to metadata of the data requested to be modified by request;

creating a new leaf node instance of the identified existing leaf node; and

creating a new intermediate node instance of the identified existing intermediate node, wherein the new intermediate node instance references the new leaf node instance that is not referenced by the identified existing intermediate node, and wherein the identified existing intermediate node and the new intermediate node instance both reference a same leaf node included in the one or more leaf nodes of the file system metadata tree structure.

2. The method of claim 1 , wherein creating the new intermediate node instance includes copying from the identified existing intermediate node to the new intermediate node instance, a reference to the same leaf node.

3. The method of claim 1 , wherein the new intermediate node instance is referenced by the identified root node.

4. The method of claim 1 , wherein the identified root node was created by copying data of another root node included in the plurality of roots nodes of the file system metadata tree structure.

5. The method of claim 1 , wherein the new leaf node instance stores the metadata associated with a file to be modified by the request to modify the data of the file system.

6. The method of claim 1 , wherein using the identified root node to identify the identified existing intermediate node and the identified existing leaf node includes traversing the file system metadata tree structure via the identified root node.

7. The method of claim 1 , wherein the new intermediate node instance references the new leaf node instance using a pointer to the new leaf node instance.

8. The method of claim 1 , wherein each root node of the plurality of roots nodes of the file system metadata tree structure correspond to a different view of the file system.

9. The method of claim 1 , wherein identified root node corresponds a current view of the file system.

10. The method of claim 1 , wherein identified root node corresponds a backup view of the file system at a particular past point in time.

11. The method of claim 1 , further comprising deleting a root node among the plurality of root nodes.

12. The method of claim 1 , wherein the new intermediate node instance references the new leaf node instance using a reference associated with an indicator that identifies a tree path that can be used to reach new leaf node instance.

13. The method of claim 1 , wherein the leaf nodes of the file system metadata tree structure store key-value pairs of file system metadata.

14. The method of claim 1 , wherein using the identified root node to identify the identified existing intermediate node and the identified existing leaf node includes obtaining a read lock on the identified root node and obtaining a read lock on the identified existing intermediate node.

15. The method of claim 1 , wherein using the identified root node to identify the identified existing intermediate node and the identified existing leaf node includes releasing a read lock on a node of the file system metadata tree structure in an event a number of obtained read locks exceeds a threshold.

16. The method of claim 1 , further comprising obtaining a write lock on the new leaf node instance.

17. The method of claim 1 , wherein the file system metadata tree structure is stored across a distributed storage.

18. The method of claim 1 , wherein the one or more intermediate nodes are associated with a plurality of different intermediate node levels.

19. A system, comprising:

a processor configured to:

in response to a request to modify data of a file system, identify for the request, a root node among a plurality of roots nodes of a file system metadata tree structure of the file system, wherein the file system metadata tree structure includes one or more intermediate nodes and one or more leaf nodes, and at least two of the roots nodes reference a same intermediate node among the one or more intermediate nodes of the file system metadata tree structure;

use the identified root node to identify an existing intermediate node included in the one or more intermediate nodes and an existing leaf node included in the one or more leaf nodes, wherein the identified existing intermediate node references the identified existing leaf node, and the identified existing leaf node corresponds to metadata of the data requested to be modified by request;

create a new leaf node instance of the identified existing leaf node; and

create a new intermediate node instance of the identified existing intermediate node, wherein the new intermediate node instance references the new leaf node instance that is not referenced by the identified existing intermediate node, and wherein the identified existing intermediate node and the new intermediate node instance both reference a same leaf node included in the one or more leaf nodes of the file system metadata tree structure; and

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

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

in response to a request to modify data of a file system, identifying for the request, a root node among a plurality of roots nodes of a file system metadata tree structure of the file system, wherein the file system metadata tree structure includes one or more intermediate nodes and one or more leaf nodes, and at least two of the roots nodes reference a same intermediate node among the one or more intermediate nodes of the file system metadata tree structure;

using the identified root node to identify an existing intermediate node included in the one or more intermediate nodes and an existing leaf node included in the one or more leaf nodes, wherein the identified existing intermediate node references the identified existing leaf node, and the identified existing leaf node corresponds to metadata of the data requested to be modified by request;

creating a new leaf node instance of the identified existing leaf node; and

creating a new intermediate node instance of the identified existing intermediate node, wherein the new intermediate node instance references the new leaf node instance that is not referenced by the identified existing intermediate node, and wherein the identified existing intermediate node and the new intermediate node instance both reference a same leaf node included in the one or more leaf nodes of the file system metadata tree structure.

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 Mar 4, 2019
From: ARON, MOHIT; SHANMUGANATHAN, GANESHA
To: COHESITY, INC.
Reel/Frame 048496/0832 →
Continuity (2)
Continuation 14450730 · Aug 4, 2014
Related Publication 20170344590A1 · Nov 30, 2017
Cited By (1)
US 12,306,733