IP Library Granted Patent US 12,117,968
Granted Patent B2
US 12,117,968 · App. 18/103,951 · Granted Oct 15, 2024

Versioned file system with global lock

Inventors: Robert M. Mason, Jr. (Uxbridge, MA); David M. Shaw (Newton, MA); Kevin W. Baughman (Natick, MA); Christopher S. Lacasse (Grafton, MA); Matthew M. McDonald (Burlington, MA); Russell A. Neufeld (Newton Highlands, MA); Akshay K. Saxena (Natick, MA)
Assignee: Nasuni Corporation
G06F16/1774G06F16/1827
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,117,968
App. No.
18/103,951
Granted
Oct 15, 2024
Kind
B2
Abstract

A versioned file system comprising network accessible storage is provided. Aspects of the system include globally locking files or groups of files so as to better control the stored files in the file system and to avoid problems associated with simultaneous remote access or conflicting multiple access requests for the same files. A method for operating, creating and using the global locks is also disclosed. A multiprotocol global lock can be provided for filing nodes that have multiple network protocols for generating local lock requests.

Claims (38)

1. A method for managing locks in a shared network-attached file system, the method comprising:

receiving a first lock request from a first node, the first lock request comprising a first local protocol of a first local lock request generated by the first node;

providing a global lock to the first node;

receiving a second lock request from a second node, the second lock request comprising a second local protocol of a second local lock request generated by the second node, wherein the first protocol is different than the second protocol;

determining whether a multiprotocol global lock distinct from the global lock can be returned to the second node, wherein a determination is based in part on evaluating whether an application associated with the second global lock request operates in a shared access mode by which multiple users are permitted to hold locks on a file at the same time; and

providing the multiprotocol global lock to the second node when the application operates in the shared access mode.

2. The method of claim 1 , further comprising temporarily storing a local lock release in a local lock cache.

3. The method of claim 2 , further comprising reestablishing the global lock when a second local lock request is generated while the local lock release is stored in the local cache.

4. The method of claim 3 , further comprising resetting an existing lock mode of the global lock when a new lock mode for the second lock request is different than an existing lock mode.

5. The method of claim 4 , wherein a reset lock mode is inclusive of an existing access level of the existing lock mode and a new access level of the new lock mode.

6. The method of claim 4 , wherein a reset lock mode is inclusive of an existing share level of the existing lock mode and a new share level of the new lock mode.

7. The method of claim 1 , further comprising storing a new file request on a central lock server.

8. The method of claim 7 , further comprising polling the central lock server for new files or new objects that have not been merged into a cloud-based network attached storage (NAS).

9. The method of claim 7 , further comprising merging a new file generated by the new file request into a cloud-based network attached storage (NAS).

10. The method of claim 1 , further comprising promoting the first or second lock request to a write lock that allows read-only access to other users of a cloud-based network attached storage (NAS).

11. The method of claim 1 , further comprising honoring an access flag and a shared access flag associated with the first or second lock request.

12. The method of claim 1 wherein the first local protocol is Network File System (NFS).

13. The method of claim 1 wherein the first local protocol is Server Message Block (SMB) or Common Internet File System (CIFS).

14. The method of claim 13 wherein the second local protocol is Network File System (NFS).

15. The method as described in claim 1 , further including providing the global lock to the second node when the application does not operate in the shared access mode.

16. The method as described in claim 1 , wherein the first and second global lock requests are associated with a shared file.

17. The method of claim 16 , further comprising creating a snapshot of a most recent version of the shared file.

18. The method of claim 17 , further comprising marking a parent directory of the shared file as modified.

19. The method of claim 16 , further comprising merging file data for the shared file in a local cache prior to locking a file path of the shared file.

20. The method of claim 19 , further comprising determining whether network file data stored in a server is newer than local file data stored in the local cache.

21. The method of claim 20 , further comprising, prior to releasing the global lock, discarding the network file data when the local file data of the shared file is newer than the network file data of the shared file.

22. The method of claim 21 , further comprising discarding the network file data when a lock_write_version of the shared file is less than a lock_push_version of the shared file.

23. The method of claim 21 , further comprising merging the local file data with the network file data when a lock_write_version is greater than a lock_push_version.

24. The method of claim 16 , further comprising updating a central lock database with an identity of the shared file associated with the global lock.

25. The method of claim 16 , further comprising determining whether a requested lock mode is available.

26. The method of claim 25 , wherein the requested lock mode includes an exclusive write access or a shared write access.

27. The method of claim 25 , further comprising determining when the requested lock mode is compatible with an existing lock mode for an existing global lock on the shared file.

28. The method of claim 27 , wherein determining when the requested lock mode is compatible with an existing lock mode comprises comparing the first local protocol associated with the global lock request with a second local protocol associated with the existing global lock.

29. The method of claim 16 , further comprising initiating a lock peek when the user opens the shared file.

30. The method of claim 29 , wherein the lock peek comprises retrieving at least one of a file handle, a handle version, a first handle, and a lock push version.

31. The method of claim 30 , wherein the lock peek is retrieved from a local lock cache.

32. The method of claim 30 , wherein the lock peek is retrieved from a central lock server.

33. The method of claim 32 , further comprising temporarily storing information retrieved from the lock peek in a local lock cache.

Assignments (1)
PATENT SECURITY AGREEMENT Recorded Sep 12, 2024
From: NASUNI CORPORATION
To: AB PRIVATE CREDIT INVESTORS LLC, AS COLLATERAL AGENT
Reel/Frame 068947/0138 →
Continuity (4)
Continuation 16429798 · Jun 3, 2019
Continuation 14735345 · Jun 10, 2015
Provisional Application 62085370 · Nov 28, 2014
Related Publication 20230177016A1 · Jun 8, 2023