IP Library Granted Patent US 8,566,299
Granted Patent B2
US 8,566,299 · App. 13/312,594 · Granted Oct 22, 2013

Method for managing lock resources in a distributed storage system

Inventors: Ofer Oshri (Kfar Saba, IL); Nadav Danieli (Tel Aviv, IL); Menny Hamburger (Nes Tziona, IL)
Assignee: Dell Global B.V.-Singapore Branch
G06F17/00G06F12/00G06F15/16
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 8,566,299
App. No.
13/312,594
Filed
Dec 6, 2011
Granted
Oct 22, 2013
Kind
B2
Art Unit
2157
USPC
707/8
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 (53)

1. A computer implemented method of managing file locks within a distributed storage system using a lock manager having a plurality of locking mechanisms, the method comprising:

receiving, by a client interface of a server, a plurality of lock requests from a plurality of clients;

maintaining, at the server, metadata associated with the lock requests in a registry lock file;

maintaining a lock resource object at the server for each locked file, each lock resource object including a block queue, a convert queue, a wakeup list, and a granted lock request list;

responding, by a lock manager of the server, to a lock request received from a client of the plurality of clients by:

determining if the lock request is a convert lock request, wherein a convert lock request is a request to change the mode of a lock;

searching the plurality of registry lock files for a lock request associated with the convert lock request; and

blocking the lock request if at least one of the convert queue is not empty, the block queue is not empty, or the lock request is not compatible with a mode of a currently granted lock request;

otherwise, granting the lock request by updating a lock status in an associated registry lock file to a granted status, adding the lock request to the granted lock request list, and generating a message to the client notifying the client that the lock request was granted.

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

3. The method of claim 2 , wherein the granted lock request list includes files locked by the client requesting the lock request.

4. The method of claim 3 , wherein the granted lock request list includes a file name of each locked file and a corresponding counter for recording a number of requested locks for said each locked file.

5. The method of claim 1 , wherein the granted lock request list includes lock requests granted by the plurality of lock resource objects.

6. The method of claim 1 , wherein the wakeup list maintains blocked lock requests that include a timeout parameter.

7. The method of claim 1 , wherein blocking the lock request further comprises:

inserting the lock request into the block queue;

inserting the lock request into the wakeup list if the lock request includes a timeout parameter; and

sending a message to the client that the lock request is blocked.

8. The method of claim 1 , wherein blocking the lock request further comprises:

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

inserting the lock request into the convert queue; and

sending a message that the convert lock request is blocked.

9. The method of claim 1 , wherein granting the lock request further comprises:

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

inserting the lock request into the granted lock request list; and

sending a message that the convert lock request is granted.

10. A distributed system for managing file locks within a distributed storage system having a plurality of locking mechanisms, the system comprising:

a plurality of computers, wherein each computer includes logic embodied in a non-transitory computer readable medium, the logic including a locking system including:

a lock manager configured to manage file locks;

a server communicatively coupled to the lock manager and configured to maintain a plurality of lock resource objects, each lock resource object including a block queue, a convert queue, a wakeup list, and a granted lock request list; and

a client interface configured to enable the lock manager and the server to interface with a plurality of clients;

wherein the lock manager is configured to respond to a lock request received from a client by:

determining if the lock request is a convert lock request, wherein a convert lock request is a request to change the mode of a lock;

searching the plurality of registry lock files for a lock request associated with the convert lock request; and

blocking the lock request if at least one of the convert queue is not empty, the block queue is not empty, or the lock request is not compatible with a mode of a currently granted lock request;

otherwise, granting the lock request by updating a lock status in an associated registry lock file to a granted status, adding the lock request to the granted lock request list, and generating a message to the client notifying the client that the lock request was granted;

a central database coupled to the lock manager of each of the locking systems configured to maintain locking information.

11. The distributed system for managing file locks of claim 10 , wherein the locking information includes a plurality of registry lock files, each of the registry lock files including a list of locked files and a list of lock requests.

12. The distributed system for managing file locks of claim 10 , wherein each of the plurality of lock resource objects is allocated to a lockable file.

13. The distributed system for managing file locks of claim 10 , wherein the wakeup list maintains blocked lock requests that include a timeout parameter.

14. A computer program product comprising computer executable instructions stored on a non-transitory tangible computer readable medium, for managing file locks within a distributed storage system, the product comprising:

an interface configured to receive a plurality of lock requests from a plurality of clients;

an interface to a server, the server configured to maintain at least:

metadata associated with the lock requests in a registry lock file; and

a lock resource object for each locked file, each lock resource object containing a block queue, a convert queue, a wakeup list, and a granted lock request list;

an interface to a database containing locking information; and

a lock manager configured respond to a lock request received from a client by:

determining if the lock request is a convert lock request, wherein a convert lock request is a request to change the mode of a lock;

searching the plurality of registry lock files for a lock request associated with the convert lock request; and

blocking the lock request if at least one of the convert queue is not empty, the block queue is not empty, or the lock request is not compatible with a mode of a currently granted lock request;

otherwise, granting the lock request by updating a lock status in an associated registry lock file to a granted status, adding the lock request to the granted lock request list, and generating a message to the client notifying the client that the lock request was granted.

15. The computer program product of claim 14 , wherein the wakeup list maintains blocked lock requests that include a timeout parameter.

16. The computer program product of claim 14 , wherein blocking the lock request further comprises the lock manager inserting the lock request into the block queue, inserting the lock request into the wakeup list if the lock request comprises a timeout parameter, and sending a message to the client that the lock request is blocked.

Assignments (8)
RELEASE OF REEL 032810 FRAME 0206 (NOTE) Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; CREDANT TECHNOLOGIES, INC.; COMPELLENT TECHNOLOGIES, INC.; FORCE10 NETWORKS, INC.; SECUREWORKS, INC.
Reel/Frame 040027/0204 →
RELEASE OF SECURITY INTEREST OF REEL 032809 FRAME 0930 (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; CREDANT TECHNOLOGIES, INC.; COMPELLENT TECHNOLOGIES, INC.; FORCE10 NETWORKS, INC.; SECUREWORKS, INC.
Reel/Frame 040045/0255 →
RELEASE OF REEL 032809 FRAME 0887 (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; CREDANT TECHNOLOGIES, INC.; COMPELLENT TECHNOLOGIES, INC.; FORCE10 NETWORKS, INC.; SECUREWORKS, INC.
Reel/Frame 040017/0314 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded May 1, 2014
From: COMPELLENT TECHNOLOGIES, INC.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; SECUREWORKS, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 032810/0206 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded May 1, 2014
From: COMPELLENT TECHNOLOGIES, INC.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; SECUREWORKS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 032809/0930 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded May 1, 2014
From: COMPELLENT TECHNOLOGIES, INC.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; SECUREWORKS, INC.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 032809/0887 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 12, 2013
From: OSHRI, OFER; NADAV, DANIELI; HAMBURGER, MENNY
To: EXANET LTD
Reel/Frame 030601/0995 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 12, 2013
From: EREZ HAVER, TEMPORARY LIQUIDATOR
To: DELL GLOBAL B.V. - SINGAPORE BRANCH
Reel/Frame 030596/0645 →
Continuity (4)
Continuation 12333868 · Dec 12, 2008
Continuation 11159216 · Jun 23, 2005
Provisional Application 60581721 · Jun 23, 2004
Related Publication 20120078866A1 · Mar 29, 2012