IP Library Granted Patent US 7,509,322
Granted Patent B2
US 7,509,322 · App. 10/336,834 · Granted Mar 24, 2009

Aggregated lock management for locking aggregated files in a switched file system

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 7,509,322
App. No.
10/336,834
Granted
Mar 24, 2009
Kind
B2
Abstract

A switched file system, also termed a file switch, is logically positioned between client computers and file servers in a computer network. The file switch distributes user files among multiple file servers using aggregated file, transaction and directory mechanisms. The file switch ensures consistent and atomic behavior of the switched file system by aggregating in a deterministic way the transactions initiated by the client of multiple independent file switches so that only one of the multiple concurrent transactions attempted on the same aggregated data file may succeed, or so that the transactions are serialized so as to be performed as a sequence of atomic operations. In addition, the integrity of the aggregated data file is safeguarded by issuing locking requests on behalf of certain client applications that do not observe locking mechanism consistently.

Claims (79)

1. A method of acquiring locks on a user file by a file switch logically positioned between a client computer and a group of file servers in a computer network, the file switch including at least one network interface for communication with the client computer and the group of file servers, where the user file is divided into portions stored on a plurality of file servers, among the group of file servers, comprising:

receiving, by the file switch, a user request requiring a lock on a subset of the user file;

identifying, by the file switch, a subset of the file servers that store portions of the user file that together comprise the subset of the user file based on metadata stored in a metafile;

sending, by the file switch, a lock request to each file server in the subset of file servers to perform a lock acquisition operation to obtain a lock on the respective portion of the user file stored therein, and to produce a lock acquisition result; and

aggregating, by the file switch, the lock acquisition results from the subset of file servers to produce an aggregated lock acquisition result.

2. A method of acquiring locks on a user file by a file switch logically positioned between a client computer and a group of file servers in a computer network, the file switch including at least one network interface for communication with the client computer and the group of file servers, where the user file is divided into portions stored on a plurality of file servers, among the group of file servers, comprising:

receiving, by the file switch, a user request requiring a lock on a subset of the user file;

accessing, by the file switch, a metafile that stores at least a portion of metadata for the user file including information identifying a set of file servers that store respective defined portions of the user file;

determining, by the file switch, based on the information stored in the metafile, a subset of the file servers that store portions of the user file that together comprise the subset of the user file;

sending, by the file switch, a lock request to each file server in the subset of file servers to perform a lock acquisition operation to obtain a lock on the respective portion of the user file stored therein, and to produce a lock acquisition result; and

aggregating, by the file switch, the lock acquisition results from the subset of file servers to produce an aggregated lock acquisition result.

3. A method of acquiring locks on user files by a file switch logically positioned between a client computer and a group of file servers in a computer network, the file switch including at least one network interface for communication with the client computer and the group of file servers, where each user file of at least a plurality of the user files is divided into portions stored on a plurality of file servers, among the group of file servers, comprising:

receiving, by the file switch, a user request requiring a lock on a subset of a specified user file;

accessing, by the file switch, a metafile that stores at least a portion of metadata for the user file including information identifying a set of file servers that stores respective defined portions of the specified user file;

determining, by the file switch, based on the information stored in the metafile, a subset of the file servers that store portions of the specified user file that together comprise the subset of the specified user file;

sending, by the file switch, a lock request to each file server in the subset of file servers to perform a lock acquisition operation to obtain a lock on the respective portion of the specified user file stored therein, and to produce a lock acquisition result; and

aggregating, by the file switch, the lock acquisition results from the subset of file servers to produce an aggregated lock acquisition result.

4. The method of claim 3 , further including:

when the aggregated lock acquisition result is a positive result, continuing processing of the user request by the file switch performing an operation on the subset of the specified user file.

5. The method of claim 3 , further including:

when the aggregated lock acquisition result is a negative result, deferring processing of the user request by the file switch for defined period of time and then repeating performance of the lock acquisition operation at each file server in the subset of file servers.

6. The method of claim 3 , further including:

when the aggregated lock acquisition result is a negative result, returning a negative result in response to the user request by the file switch.

7. The method of claim 3 , wherein the accessing includes accessing cached information from the metafile by the file switch.

8. A method of managing locks on a user file by a file switch logically positioned between a client computer and a group of file servers in a computer network, the file switch including at least one network interface for communication with the client computer and the group of file servers, where the user file is divided into portions stored on a plurality of file servers, among the group of file servers, comprising:

receiving, by the file switch, a user request requiring a lock on a subset of the user file;

accessing, by the file switch, at least one metafile that stores at least a portion of metadata for the user file including information identifying a set of file servers that store respective defined portions of the user file;

performing, by the file switch, a lock acquisition operation on the at least one metafile, the lock acquisition operation using a first range of file positions corresponding to the subset of the user file, the first range of file positions falling at least partially outside file positions located within the metafile, and producing an aggregated lock acquisition result; and

when the aggregated lock acquisition result is positive, continuing processing of the user request by the file switch performing an operation on the subset of the user file.

9. The method of claim 8 , further including:

when the aggregated lock acquisition result is a negative result, deferring processing of the user request by the file switch for defined period of time and then repeating performance of the lock acquisition operation.

10. The method of claim 8 , further including:

when the aggregated lock acquisition result is a negative result, blocking processing of the user request by the file switch.

11. The method of claim 8 , wherein the continuing processing includes determining, by the file switch, based on the information stored in the metafile, a subset of the file servers that store portions of the user file that together comprise the subset of the user file.

12. The method of claim 11 , the continuing processing further including:

sending, by the file switch, a lock request to each file server in the subset of file servers to perform an operation on the respective portion of the user file stored therein, and to produce a result; and

aggregating, by the file switch, the results from the subset of file servers to produce an aggregated result.

13. A file switch for acquiring locks on a user file in a computer network in which the file switch is logically positioned between a client computer and a group of file servers, where the user file is divided into portions stored on a plurality of file servers, among the group of file servers, the file switch comprising:

at least one network interface for communication with the client computer and the group of file servers; and

a lock manager coupled to the at least one network interface and configured to receive a user request requiring a lock on a subset of the user file; identify a subset of the file servers that store portions of the user file that together comprise the subset of the user file based on metadata stored in a metafile;

send a lock request to each file server in the subset of file servers to perform a lock acquisition operation to obtain a lock on the respective portion of the user file stored therein, and to produce a lock acquisition result; and

aggregate the lock acquisition results from the subset of file servers to produce an aggregated lock acquisition result.

14. The file switch of claim 13 , wherein the lock manager is configured to identify the subset of the file sewers that store portions of the user file by accessing a metafile that stores at least a portion of metadata for the user file including information identifying the subset of file sewers and determining the subset of file sewers based on the information stored in the metafile.

15. The file switch of claim 13 , wherein a plurality of user files is divided into portions stored on a plurality of file servers, and wherein the user request relates to a specified user file from among the plurality of user files.

16. The file switch of claim 13 , wherein the lock manager is configured to continue processing of the user request by performing an operation on the subset of the user file, when the aggregated lock acquisition result is a positive result.

17. The file switch of claim 13 , wherein the lock manager is configured to defer processing of the user request for a defined period of time and then repeat performance of the lock acquisition operation at each file server in the subset of file sewers, when the aggregated lock acquisition result is a negative result.

18. The file switch of claim 13 , wherein the lock manager is configured to return a negative result in response to the user request, when the aggregated lock acquisition result is a negative result.

19. The file switch of claim 13 , wherein the lock manager is configured to access the metafile from cached information.

20. A file switch for acquiring locks on a user file in a computer network in which the file switch is logically positioned between a client computer and a group of file servers, where the user file is divided into portions stored on a plurality of file servers, among the group of file servers, the file switch comprising:

at least one network interface for communication with the client computer and the group of file servers; and

a lock manager coupled to the at least one network interface and configured to receive a user request requiring a lock on a subset of the user file;

access at least one metafile that stores information identifying a set of file servers that store respective defined portions of the user file;

perform a lock acquisition operation on the at least one metafile, the lock acquisition operation using a first range of file positions corresponding to the subset of the user file, the first range of file positions falling at least partially outside file positions located within the metafile, and produce an aggregated lock acquisition result; and

when the aggregated lock acquisition result is positive, continue processing of the user request by performing an operation on the subset of the user file.

21. The file switch of claim 20 , wherein the lock manager is configured to defer processing of the user request for a defined period of time and then repeat performance of the lock acquisition operation, when the aggregated lock acquisition result is a negative result.

22. The file switch of claim 20 , wherein the lock manager is configured to block processing of the user request, when the aggregated lock acquisition result is a negative result.

23. The file switch of claim 20 , wherein the lock manager is configured to continue processing of the user request by determining, based on the information stored in the metafile, a subset of the file servers that store portions of the user file that together comprise the subset of the user file.

24. The file switch of claim 23 , wherein the lock manager is configured to continue processing of the user request by sending a lock request to each file server in the subset of file servers to perform an operation on the respective portion of the user file stored therein, and to produce a result; and aggregating the results from the subset of file servers to produce an aggregated result.

25. A system for acquiring locks on a user file in a computer network having a client computer, the system comprising:

a group of file servers, where the user file is divided into portions stored on a plurality of file servers, among the group of file servers; and

a file switch logically positioned between the client computer and the group of file servers, the file switch configured to receive a user request requiring a lock on a subset of the user file;

identify a subset of the file servers that store portions of the user file that together comprise the subset of the user file based on metadata stored in a metafile;

send a lock request to each file server in the subset of file servers to perform a lock acquisition operation to obtain a lock on the respective portion of the user file stored therein, and to produce a lock acquisition result; and

aggregate the lock acquisition results from the subset of file servers to produce an aggregated lock acquisition result.

26. The system of claim 25 , wherein the file switch is configured to identify the subset of the file servers that store portions of the user file by accessing a metafile that stores at least a portion of metadata for the user file including information identifying the subset of file servers and determining the subset of file servers based on the information stored in the metafile.

27. The system of claim 25 , wherein a plurality of user files is divided into portions stored on a plurality of file servers, and wherein the user request relates to a specified user file from among the plurality of user files.

28. The system of claim 25 , wherein the file switch is configured to continue processing of the user request by performing an operation on the subset of the user file, when the aggregated lock acquisition result is a positive result.

29. The system of claim 25 , wherein the file switch is configured to defer processing of the user request for a defined period of time and then repeat performance of the lock acquisition operation at each file server in the subset of file servers, when the aggregated lock acquisition result is a negative result.

30. The system of claim 25 , wherein the file switch is configured to return a negative result in response to the user request, when the aggregated lock acquisition result is a negative result.

31. The system of claim 25 , wherein the file switch is configured to access the metafile from cached information.

32. A system for acquiring locks on a user file in a computer network having a client computer, the system comprising:

a group of file servers, where the user file is divided into portions stored on a plurality of file servers, among the group of file servers; and

a file switch logically positioned between the client computer and the group of file servers, the file switch configured to receive a user request requiring a lock on a subset of the user file; access at least one metafile that stores information identifying a set of file servers that store respective defined portions of the user file;

perform a lock acquisition operation on the at least one metafile, the lock acquisition operation using a first range of file positions corresponding to the subset of the user file, the first range of file positions falling at least partially outside file positions located within the metafile, and produce an aggregated lock acquisition result; and

when the aggregated lock acquisition result is positive, continue processing of the user request by performing an operation on the subset of the user file.

33. The system of claim 32 , wherein the file switch is configured to defer processing of the user request for a defined period of time and then repeat performance of the lock acquisition operation, when the aggregated lock acquisition result is a negative result.

34. The system of claim 32 , wherein the file switch is configured to block processing of the user request, when the aggregated lock acquisition result is a negative result.

35. The system of claim 32 , wherein the file switch is configured to continue processing of the user request by determining, based on the information stored in the metafile, a subset of the file servers that store portions of the user file that together comprise the subset of the user file.

36. The system of claim 35 , wherein the file switch is configured to continue processing of the user request by sending a lock request to each file server in the subset of file servers to perform an operation on the respective portion of the user file stored therein, and to produce a result; and aggregating the results from the subset of file servers to produce an aggregated result.

Assignments (9)
RELEASE OF SECURITY INTEREST Recorded Oct 26, 2020
From: JEFFERIES FINANCE LLC
To: RPX CORPORATION
Reel/Frame 054486/0422 →
SECURITY INTEREST Recorded Dec 13, 2018
From: RPX CORPORATION
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 048432/0260 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 24, 2018
From: F5 NETWORKS, INC
To: RPX CORPORATION
Reel/Frame 046950/0480 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 20, 2009
From: ATTUNE SYSTEMS, INC.
To: F5 NETWORKS, INC.
Reel/Frame 022562/0397 →
RELEASE OF SECURITY INTEREST Recorded Jan 16, 2009
From: LYNN, BARRY X
To: ATTUNE SYSTEMS, INC. (FORMERLY Z-FORCE COMMUNICATIONS)
Reel/Frame 022117/0550 →
CHANGE OF NAME Recorded Nov 15, 2005
From: Z-FORCE COMMUNICATIONS, INC.
To: ATTUNE SYSTEMS, INC.
Reel/Frame 016769/0861 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2005
From: MILOUSHEV, VLADIMIR; NICKOLOV, PETER
To: Z-FORCE COMMUNICATIONS, INC.
Reel/Frame 016775/0609 →
GRANT OF PATENT SECURITY INTEREST Recorded Oct 4, 2004
From: Z-FORCE COMMUNICATIONS, INC.
To: LYNN, AS COLLATERAL AGENT, BARRY X
Reel/Frame 015213/0227 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 7, 2003
From: MILOUSHEV, VLADIMIR; NICKOLOV, PETER
To: Z-FORCE, INC.
Reel/Frame 014058/0531 →