Concurrent access and transactions in a distributed file system
First Claim
1. A method, comprising:
- in response to a request to perform a new file system operation, identifying a first set of file system objects to be accessed in performing the requested new file system operation, wherein each file system object of the first set of file system objects is associated with a corresponding file system data structure and the corresponding file system data structures of the first set of file system objects are included in a first set of file system data structures;
determining whether a first file system data structure in the first set of file system data structures identifies an update intent for a previous incomplete file system operation, wherein the update intent for the previous incomplete file system operation specifies an ordered sequence of a second set of file system data structures associated with the previous incomplete file system operation;
in response to a determination that the first file system data structure included in the first set of file system data structures identifies the update intent for the previous incomplete file system operation;
obtaining a second file system data structure included in the second set of file system data structures in a position of the ordered sequence before the first file system data structure that is also included in the second set of file system data structures,determining whether the second file system data structure identifies the update intent for the previous incomplete file system operation, andbased on at least whether the second file system data structure in the position of the ordered sequence before the first file system data structure identifies the update intent for the previous incomplete file system operation, determining whether to complete a not completed operation of the incomplete file system operation;
wherein the first set of file system objects are to be modified in performing the requested new file system operation and a new update intent associated with the requested new file system operation is stored in each file system data structure of the first set of file system data structures.
2 Assignments
0 Petitions
Accused Products
Abstract
Embodiments described herein provide techniques for maintaining consistency in a distributed system (e.g., a distributed secondary storage system). According to one embodiment of the present disclosure, a first set of file system objects included in performing the requested file system operation is identified in response to a request to perform a file system operation. An update intent corresponding to the requested file system operation is inserted into an inode associated with each identified file system object. Each file system object corresponding to the inode is modified as specified by the update intent in that inode. After modifying the file system object corresponding to the inode, the update intent is removed from that inode.
55 Citations
20 Claims
-
1. A method, comprising:
-
in response to a request to perform a new file system operation, identifying a first set of file system objects to be accessed in performing the requested new file system operation, wherein each file system object of the first set of file system objects is associated with a corresponding file system data structure and the corresponding file system data structures of the first set of file system objects are included in a first set of file system data structures; determining whether a first file system data structure in the first set of file system data structures identifies an update intent for a previous incomplete file system operation, wherein the update intent for the previous incomplete file system operation specifies an ordered sequence of a second set of file system data structures associated with the previous incomplete file system operation; in response to a determination that the first file system data structure included in the first set of file system data structures identifies the update intent for the previous incomplete file system operation; obtaining a second file system data structure included in the second set of file system data structures in a position of the ordered sequence before the first file system data structure that is also included in the second set of file system data structures, determining whether the second file system data structure identifies the update intent for the previous incomplete file system operation, and based on at least whether the second file system data structure in the position of the ordered sequence before the first file system data structure identifies the update intent for the previous incomplete file system operation, determining whether to complete a not completed operation of the incomplete file system operation; wherein the first set of file system objects are to be modified in performing the requested new file system operation and a new update intent associated with the requested new file system operation is stored in each file system data structure of the first set of file system data structures. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A system, comprising:
-
a processor; and a memory coupled with the processor, wherein the memory is configured to provide the processor with instructions which when executed cause the processor to; in response to a request to perform a new file system operation, identify a first set of file system objects to be accessed in performing the requested new file system operation, wherein each file system object of the first set of file system objects is associated with a corresponding file system data structure and the corresponding file system data structures of the first set of file system objects are included in a first set of file system data structures; determine whether a first file system data structure in the first set of file system data structures identifies an update intent for a previous incomplete file system operation, wherein the update intent for the previous incomplete file system operation specifies an ordered sequence of a second set of file system data structures associated with the previous incomplete file system operation; in response to a determination that the first file system data structure included in the first set of file system data structures identifies the update intent for the previous incomplete file system operation; obtain a second file system data structure included in the second set of file system data structures in a position of the ordered sequence before the first file system data structure that is also included in the second set of file system data structures, determine whether the second file system data structure identifies the update intent for the previous incomplete file system operation, and based on at least whether the second file system data structure in the position of the ordered sequence before the first file system data structure identifies the update intent for the previous incomplete file system operation, determine whether to complete a not completed operation of the incomplete file system operation; wherein the first set of file system objects are to be modified in performing the requested new file system operation and a new update intent associated with the requested new file system operation is stored in each file system data structure of the first set of file system data structures. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
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 perform a new file system operation, identifying a first set of file system objects to be accessed in performing the requested new file system operation, wherein each file system object of the first set of file system objects is associated with a corresponding file system data structure and the corresponding file system data structures of the first set of file system objects are included in a first set of file system data structures; determining whether a first file system data structure in the first set of file system data structures identifies an update intent for a previous incomplete file system operation, wherein the update intent for the previous incomplete file system operation specifies an ordered sequence of a second set of file system data structures associated with the previous incomplete file system operation; in response to a determination that the first file system data structure included in the first set of file system data structures identifies the update intent for the previous incomplete file system operation; obtaining a second file system data structure included in the second set of file system data structures in a position of the ordered sequence before the first file system data structure that is also included in the second set of file system data structures, determining whether the second file system data structure identifies the update intent for the previous incomplete file system operation, and based on at least whether the second file system data structure in the position of the ordered sequence before the first file system data structure identifies the update intent for the previous incomplete file system operation, determining whether to complete a not completed operation of the incomplete file system operation; wherein the first set of file system objects are to be modified in performing the requested new file system operation and a new update intent associated with the requested new file system operation is stored in each file system data structure of the first set of file system data structures.
-
Specification