IP Library Granted Patent US 11,687,494
Granted Patent B2
US 11,687,494 · App. 16/921,055 · Granted Jun 27, 2023

Concurrent access and transactions in a distributed file system

Inventors: Mohit Aron (Saratoga, CA); Ganesha Shanmuganathan (San Jose, CA)
Assignee: Cohesity, Inc.
G06F16/1767G06F16/9024
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 11,687,494
App. No.
16/921,055
Granted
Jun 27, 2023
Kind
B2
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.

Claims (41)

1. A method, comprising:

obtaining locks for a plurality of file system objects associated with a file system transaction, wherein the plurality of file system objects correspond to inodes;

storing a corresponding update intent in each of the file system objects associated with the file system transaction, wherein the corresponding update intent is stored in the inodes corresponding to the file system objects associated with the file system transaction, wherein the corresponding update intent indicates an order in which a plurality of file system objects associated with the file system transaction are to be modified; and

modifying the plurality of file system objects associated with the file system transactions based on the order;

removing the corresponding update intent from a file system object of the plurality of file system objects after the file system object is modified; and

releasing the locks for the plurality of file system objects associated with the file system transaction.

2. The method of claim 1 , further comprising generating the corresponding update intent for each file system object associated with the file system transaction.

3. The method of claim 1 , wherein the corresponding update intent indicates a file system operation to be performed for the file system transaction.

4. The method of claim 1 , further comprising receiving at a node of a distributed file system, a request to perform a file system operation.

5. The method of claim 4 , wherein obtaining locks for the plurality of file system objects associated with the file system transaction includes identifying the plurality of file system objects associated with the file system operation.

6. The method of claim 5 , wherein obtaining locks for the plurality of file system objects associated with the file system transaction includes requesting by the node from a distributed ticket service corresponding tickets for the plurality of identified file system objects.

7. The method of claim 6 , wherein the distributed ticket service determines whether the requested tickets are currently being held by one or more other nodes of the distributed file system.

8. The method of claim 7 , wherein in the event the requested tickets are currently being held by the one or more other nodes of the distributed file system, the requesting node waits until the requested tickets are no longer held by the one or more other nodes to receive the requested tickets.

9. The method of claim 7 , wherein obtaining locks for the plurality of file system objects associated with the file system transaction includes receiving the requested tickets from the distributed ticket service.

10. The method of claim 9 , wherein obtaining locks for the plurality of file system objects associated with the file system transaction includes requesting a process-wide lock for each of the file system objects.

11. The method of claim 10 , further comprising performing the file system operation.

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

obtaining locks for a plurality of file system objects associated with a file system transaction, wherein the plurality of file system objects correspond to inodes;

storing a corresponding update intent in each of the file system objects associated with the file system transaction, wherein the corresponding update intent is stored in the inodes corresponding to the file system objects associated with the file system transaction, wherein the corresponding update intent indicates an order in which a plurality of file system objects associated with the file system transaction are to be modified; and

modifying the plurality of file system objects associated with the file system transactions based on the order;

removing the corresponding update intent from a file system object of the plurality of file system objects after the file system object is modified; and

releasing the locks for the plurality of file system objects associated with the file system transaction.

13. The computer program product of claim 12 , further comprising instructions for generating the corresponding update intent for each of the file system objects associated with the file system transaction.

14. The computer program product of claim 12 , wherein the corresponding update intent indicates a file system operation to be performed for the file system transaction.

15. The computer program product of claim 12 , wherein obtaining locks for the plurality of file system objects associated with the file system transaction includes:

receiving at a node of a distributed file system, a request to perform a file system operation; and

identifying a plurality of file system objects associated with the file system operation.

16. The computer program product of claim 15 , wherein obtaining locks for the plurality of file system objects associated with the file system transaction includes:

requesting by the node from a distributed ticket service corresponding tickets for the plurality of identified file system objects; and

receiving the requested tickets from the distributed ticket service.

17. The computer program product of claim 16 , wherein obtaining locks for the plurality of file system objects associated with the file system transaction includes:

requesting a process-wide lock for each of the file system objects; and

performing the file system operation.

18. 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:

obtain locks for a plurality of file system objects associated with a file system transaction, wherein the plurality of file system objects correspond to inodes;

store a corresponding update intent in each of the file system objects associated with the file system transaction, wherein the corresponding update intent is stored in the inodes corresponding to the file system objects associated with the file system transaction, wherein the corresponding update intent indicates an order in which a plurality of file system objects associated with the file system transaction are to be modified;

modify the plurality of file system objects associated with the file system transactions based on the order;

remove the corresponding update intent from a file system object of the plurality of file system objects after the file system object is modified; and

release the locks for the plurality of file system objects associated with the file system transaction.

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 Sep 9, 2020
From: ARON, MOHIT; SHANMUGANATHAN, GANESHA
To: COHESITY, INC.
Reel/Frame 053727/0644 →
Continuity (3)
Continuation 15826388 · Nov 29, 2017
Continuation 14525018 · Oct 27, 2014
Related Publication 20200394160A1 · Dec 17, 2020
Cited By (1)
US 12,505,074