IP Library Patent Application 11159216
Patent Application
App. No. 11/159,216

Method for managing lock resources in a distributed storage system

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 None
App. No.
11/159,216
Abstract

A method and a distributed locking system for the management of lock resources in a distributed files system having several lock managers, each managing lock resources in its respective domain. Each lock manager maintains a registry lock file that comprises of a list of all locked files and a list of lock requests. The registry lock files of all lock managers in the distributed locking system are saved in a central database. Furthermore, the system enables concurrent locking operations of different file sharing protocols on the same file system resources.

Claims (91)

1 . A method for managing file locks in a distributed storage system, said method comprises:

providing a plurality of registry lock files maintained by a plurality of locking managers, wherein each of said registry lock files comprises at least a list of locked files and a list of lock requests;

providing a plurality of lock resource objects, wherein each of said plurality of lock resource objects is allocated to a lockable file; and

servicing a client lock request based on the information maintained by said lock resource objects and said registry lock files.

2 . The method of claim 1 , wherein said registry lock file further comprises a unique identification of said client requesting the lock and a host name of said client.

3 . The method of claim 2 , wherein said list of files contains files locked by said client requesting the lock in a domain of said locking manager.

4 . The method of claim 3 , wherein said list of files comprises at least a file name of the locked file and a counter recording the number of requested locks for said locked file.

5 . The method of claim 1 , wherein each of said plurality of lock resource objects is part of metadata of said lockable file.

6 . The method of claim 1 , wherein each of said plurality of lock resource objects comprises at least a block queue, a convert queue, a grant list and a wakeup list.

7 . The method of claim 6 , wherein said block queue comprises lock requests that are not granted.

8 . The method of claim 6 , wherein said convert queue comprises granted lock requests attempting to change lock modes.

9 . The method of claim 6 , wherein said grant list comprises lock requests granted by said lock resource object.

10 . The method of claim 6 , wherein said wakeup list comprises blocked lock requests with limited time duration.

11 . The method of claim 6 , wherein servicing said client lock request comprises:

receiving a new lock request from said client to lock a file;

forwarding said lock request to a lock manager that belongs to the same domain to which said file to be locked belongs to;

writing said lock request to said registry lock file maintained by said lock manager;

blocking said lock request if said at least one of said convert queue or said block queue comprises at least one lock request; and

blocking said lock request if said lock request is in conflict with an already granted lock saved in said grant list; otherwise, granting said lock request.

12 . The method of claim 11 , wherein said blocking said lock request further comprises:

inserting said lock request into said lock queue;

inserting said lock request into said wakeup list if said lock request comprises a timeout parameter; and

sending a message that said lock request is blocked.

13 . The method of claim 11 , wherein granting said lock request further comprises:

inserting said lock request into said grant queue; and

sending a message that said convert lock that request is granted.

14 . The method of claim 6 , wherein servicing said client lock request comprises:

receiving a convert lock request to change the mode of said lock;

searching in said registry lock file for a lock request associated with said convert lock request;

blocking said convert lock request if at least said convert queue is not empty and/or said requested mode is not compatible with a most restrictive mode of a currently granted lock; otherwise, granting said convert lock request.

15 . The method of claim 14 , wherein blocking said convert lock request further comprises:

changing said mode of said lock request associated with said convert lock request;

inserting said lock request into said convert queue; and

sending a message that said convert lock request is blocked.

16 . The method of claim 14 , wherein granting said convert lock request further comprises:

changing said mode of said lock request associated with said convert lock request;

inserting said lock request into said grant list; and

sending a message that said convert lock request is granted.

17 . A computer program product for enabling a computer to managing file locks in a distributed storage system comprising software instructions for enabling the computer to perform predetermined operations, and a computer readable medium bearing the software instructions, wherein the predetermined operations comprise:

providing a plurality of registry lock files maintained by a plurality of locking managers, wherein each of said plurality registry lock files comprises at least a list of locked files and a list of lock requests;

providing a plurality of lock resource objects, wherein each of said plurality of lock resource objects is allocated per a lockable file; and

servicing a client lock request based on the information maintained by said lock resource objects and said registry lock files.

18 . The computer program product of claim 17 , wherein said registry lock file further comprises a unique identification of said client requesting the lock and a host name of said client.

19 . The computer program product of claim 18 , wherein said list of files contains files locked by said client requesting the lock in a domain of said locking manager.

20 . The computer program product of claim 19 , wherein said list of files comprises at least a file name of the locked file and a counter recording a number of requested locks for said locked file.

21 . The computer program product of claim 17 , wherein each of said plurality of lock resource objects is part of metadata of said lockable file.

22 . The computer program product of claim 17 , wherein each of said plurality of lock resource objects comprises at least a block queue, a convert queue, a grant list and a wakeup list.

23 . The computer program product of claim 22 , wherein said block queue comprises lock requests that are not granted.

24 . The computer program product of claim 22 , wherein said convert queue comprises granted lock requests attempting to change lock modes.

25 . The computer program product of claim 22 , wherein said grant list comprises lock requests granted by said lock resource object.

26 . The computer program product of claim 22 , wherein said wakeup list comprises blocked lock requests with limited time duration.

27 . The computer program product of claim 22 , wherein servicing said client lock request comprises:

receiving a new lock request from said client to lock a file;

forwarding said lock request to a lock manager that belongs to the same domain to which said file to be locked belongs to;

writing said lock request to said registry lock file maintained by said locking manager;

blocking said lock request if said at least one of said convert queue or said block queue comprises at least one lock request; and

blocking said lock request if said lock request is in conflict with an already granted lock saved in said grant list; otherwise, granting said lock request.

28 . The computer program product of claim 27 , wherein said blocking said lock request further comprises:

inserting said lock request into said lock queue;

inserting said lock request into said wakeup list if said lock request comprises timeout parameter; and

sending a message that said lock request is blocked.

29 . The computer program product of claim 27 , wherein granting said lock request further comprises:

inserting said lock request into said grant queue; and

sending a message that said convert lock that request is granted.

30 . The computer program product of claim 22 , wherein servicing said client lock request comprises:

receiving a convert lock request to change the mode of said lock;

searching in said registry lock file for a lock request associated with said convert lock request;

blocking said convert lock request if said convert queue is not empty and/or said requested mode is not compatible with a most restrictive mode of a currently granted lock; otherwise, granting said convert lock request.

31 . The computer program product of claim 30 , wherein blocking said convert lock request further comprises:

changing said mode of said lock request associated with said convert lock request;

inserting said lock request into said convert queue; and

sending a message that said convert lock request is blocked.

32 . The computer program product of claim 30 , wherein granting said convert lock request further comprises:

changing said mode of said lock request associated with said convert lock request;

inserting said lock request into said grant list; and

sending a message that said convert lock request is granted.

33 . A distributed lock system for managing lock resources in a distributed storage system, said system comprising:

a plurality of locking managers, wherein each of said plurality of locking managers is capable of managing lock resources in its respective domain;

a plurality of metadata servers capable of maintaining a plurality of a lock resource objects; and

a central database for maintaining locking information.

34 . The system of claim 33 , wherein said locking information comprises a plurality of registry lock files, wherein each of said plurality registry lock files comprises at least a list of locked files and a list of lock requests.

35 . The system of claim 34 , wherein each of said plurality of lock resource objects is allocated to a lockable file.

36 . The system of claim 34 , wherein said registry lock file further comprises a unique identification of said client requesting the lock and a host name of said client.

37 . The system of claim 35 , wherein said list of files contains files locked by said client requesting the lock in a domain of said locking manager.

38 . The system of claim 37 , wherein said list of files comprises at least a file name of the locked file and a counter recording a number of requested locks for said locked file.

39 . The system of claim 35 , wherein each of said plurality of lock resource objects is part of metadata of said lockable file.

40 . The system of claim 39 , wherein each of said plurality of lock resource objects comprises at least a block queue, a convert queue, a grant list and a wakeup list.

41 . The system of claim 40 , wherein said block queue comprises lock requests that are not granted.

42 . The system of claim 40 , wherein said convert queue comprises granted lock requests attempting to change lock modes.

43 . The system of claim 40 , wherein said grant list comprises lock requests granted by said lock resource object.

44 . The system of claim 40 , wherein said wakeup list comprises blocked lock requests with limited time duration.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 18, 2010
From: HAVER, TEMPORARY LIQUIDATOR, EREZ
To: DELL GLOBAL B.V. - SINGAPORE BRANCH
Reel/Frame 023950/0606 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 23, 2005
From: OSHRI, OFER; DANIELI, NADAV; HAMBURGER, MENNY
To: EXANET LTD.
Reel/Frame 016720/0814 →