US12105679B2ActiveUtilityA1

Remote cloning of files in distributed file systems

84
Assignee: NETAPP INCPriority: Aug 19, 2022Filed: Mar 31, 2023Granted: Oct 1, 2024
Est. expiryAug 19, 2042(~16.1 yrs left)· nominal 20-yr term from priority
G06F 16/182G06F 16/2379G06F 16/2365G06F 16/162G06F 16/1844
84
PatentIndex Score
1
Cited by
9
References
20
Claims

Abstract

Approaches and mechanisms for cloning a file are described. A first node requests a clone of a file at a time when it also requests an exclusive delegation of the original file from a second node where the original file is stored. The second node marks the original file as delegated to the first node and the second node records an intent to create the clone file and a delegation record for the clone file. The second node creates the clone file. The delegation of and the identity of the clone file are returned to the first node. The first node marks in the delegation record that the clone file was committed in response to modification. If the clone file was committed the delegation is cleared and the clone file is kept, and if the clone file was not committed, the delegation is cleared, and the clone file is deleted.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A node in a distributed storage system having plurality of interconnected nodes, the node comprising:
 network interfaces to allow communication to and from remote nodes in the plurality of interconnected nodes; 
 a memory device to store instructions; 
 a processor coupled with the memory device and with the network interfaces, the processor to execute instructions stored in the memory device including instructions that cause the processor to:
 receive a clone request from a remote node, the clone request for a clone of a file stored on the node; 
 perform one or more preparatory operations prior to granting a file delegation for the file to the remote node; 
 mark the file as delegated to the remote node; 
 generate the clone of the file; 
 transmit, to the remote node, delegation information corresponding to the file and identity information corresponding to the clone of the file; 
 initiate processing to release the delegation of the file in response to a release trigger; 
 clear the delegation of the file to the remote node; 
 keep the clone file if the clone file has been committed; and 
 delete the clone file if the clone file has not been committed. 
 
 
     
     
       2. The node of  claim 1  wherein the distributed storage system utilizes a block-based format having fixed-size blocks and index nodes (inodes) to identify files and file attributes. 
     
     
       3. The node of  claim 2  wherein the distributed storage system utilizes a redirection layer that comprises at least a directory that points to a catalog inode that includes an inode database that operates as a multipart catalog that lists a plurality of child inodes that each store components of the file. 
     
     
       4. The node of  claim 3  wherein the clone of the file comprises data from multiple child inodes in the plurality of child inodes. 
     
     
       5. The node of  claim 1  further comprising deleting the clone file and state information associated with the clone file, if any, in response to an indication that generation of the clone file was not completely successful. 
     
     
       6. The node of  claim 1  wherein the distributed storage system is a container-based system in which each node exists within a corresponding container. 
     
     
       7. The node of  claim 1  wherein the remote node atomically marks the clone file as committed and performs an operation having a dependency on the clone file. 
     
     
       8. A non-transitory computer readable storage medium having stored thereon instructions that, when executed by one or more processors, cause the one or more processors to:
 receive a clone request from a remote node, the clone request for a clone of a file stored on a selected node; 
 perform one or more preparatory operations prior to granting a file delegation for the file to the remote node; 
 mark the file as delegated to the remote node; 
 generate the clone of the file; 
 transmit, to the remote node, delegation information corresponding to the file and identity information corresponding to the clone of the file; 
 initiate processing to release the delegation of the file in response to a release trigger; 
 clear the delegation of the file to the remote node; 
 keep the clone file if the clone file has been committed; and 
 delete the clone file if the clone file has not been committed. 
 
     
     
       9. The non-transitory computer readable storage medium of  claim 8  wherein a distributed storage system comprising at least the remote node and the selected node utilizes a block-based format having fixed-size blocks and index nodes (inodes) to identify files and file attributes. 
     
     
       10. The non-transitory computer readable storage medium of  claim 9  wherein the distributed storage system that a redirection layer that comprises at least a directory that points to a catalog inode that includes an inode database that operates as a multipart catalog that lists a plurality of child inodes that each store components of the file. 
     
     
       11. The non-transitory computer readable storage medium of  claim 10  wherein the clone of the file comprises data from multiple child inodes in the plurality of child inodes. 
     
     
       12. The non-transitory computer readable storage medium of  claim 8  further comprising instructions that, when executed, cause the one or more processors to delete the clone file and state information associated with the clone file, if any, in response to an indication that generation of the clone file was not completely successful. 
     
     
       13. The non-transitory computer readable storage medium of  claim 8  wherein a distributed storage system comprising at least the remote node and the selected node is a container-based system in which each node exists within a corresponding container. 
     
     
       14. The non-transitory computer readable storage medium of  claim 8  further comprising instructions that, when executed, cause the one or more processors to cause the remote node to atomically mark the clone file as committed and performs an operation having a dependency on the clone file. 
     
     
       15. A method for managing a node in a distributed storage system having plurality of interconnected nodes, the method comprising:
 receiving a clone request from a remote node, the clone request for a clone of a file stored on the node; 
 performing one or more preparatory operations prior to granting a file delegation for the file to the remote node; 
 marking the file as delegated to the remote node; 
 generating the clone of the file; 
 transmitting, to the remote node, delegation information corresponding to the file and identity information corresponding to the clone of the file; 
 initiating processing to release the delegation of the file in response to a release trigger; 
 clearing the delegation of the file to the remote node; 
 keeping the clone file if the clone file has been committed; and 
 deleting the clone file if the clone file has not been committed. 
 
     
     
       16. The method of  claim 15  wherein the distributed storage system utilizes a block-based format having fixed-size blocks and index nodes (inodes) to identify files and file attributes. 
     
     
       17. The method of  claim 15  wherein the remote node is part of the distributed storage system that utilizes a redirection layer that comprises at least a directory that points to a catalog inode that includes an inode database that operates as a multipart catalog that lists a plurality of child inodes that each store components of the file. 
     
     
       18. The method of  claim 15  wherein the clone of the file comprises data from multiple child inodes. 
     
     
       19. The method of  claim 15  wherein the remote node atomically marks the clone file as committed and performs an operation having a dependency on the clone file. 
     
     
       20. The method of  claim 15  wherein the distributed storage system is a container-based system in which each node exists within a corresponding container.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.