Claims
- 1. A method of acquiring locks on a user file, where the user file is divided into portions stored on a plurality of file servers, among a group of file servers in a computer network, comprising:
receiving a user request requiring a lock on a subset of the user file; identifying a subset of the file servers that store portions of the user file that together comprise the subset of the user file; at each file server in the subset of file servers, performing a lock acquisition operation to obtain a lock on the respective portion of the user file stored therein, and producing a lock acquisition result; and aggregating 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, where the user file is divided into portions stored on a plurality of file servers, among a group of file servers in a computer network, comprising:
receiving a user request requiring a lock on a subset of the user file; accessing a metafile that stores information identifying a set of file servers that store respective defined portions of the user file; 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; at each file server in the subset of file servers, performing a lock acquisition operation to obtain a lock on the respective portion of the user file stored therein, and producing a lock acquisition result; and aggregating 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, 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 a group of file servers in a computer network, comprising:
receiving a user request requiring a lock on a subset of a specified user file; accessing a metafile that stores information identifying a set of file servers that stores respective defined portions of the specified user file; determining, 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; at each file server in the subset of file servers, performing a lock acquisition operation to obtain a lock on the respective portion of the specified user file stored therein, and producing a lock acquisition result; and aggregating 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 performing an operation on the subset of the specified user file.
- 5. The method of claim 4, further including:
when the aggregated lock acquisition result is a negative result, deferring processing of the user request 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 4, further including:
when the aggregated lock acquisition result is a negative result, returning a negative result in response to the user request.
- 7. The method of claim 3, wherein the receiving, accessing, determining and aggregating are performed by a file switch logically positioned between a client computer from which the user request is received and the group of file servers.
- 8. The method of claim 3, wherein the accessing includes accessing cached information from the metafile.
- 9. A file switch for use in a computer network having a group of file servers and a plurality of client computers, the file switch comprising:
at least one processing unit for executing computer programs; at least one port for exchanging information with the file servers and client computers, the information exchanged including information concerning a specified user file; a file aggregation module including one or more computer programs, the computer programs including instructions for: receiving a user request requiring a lock on a subset of a specified user file; accessing a metafile that stores information identifying a set of file servers that store respective defined portions of the specified user file; determining, 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; at each file server in the subset of file servers, performing a lock acquisition operation to obtain a lock on the respective portion of the specified user file stored therein, and producing a lock acquisition result; and aggregating the lock acquisition results from the subset of file servers to produce an aggregated lock acquisition result.
- 10. The file switch of claim 9, wherein the computer programs of the file aggregation module include instructions for continuing processing of the user request, when the aggregated lock acquisition result is a positive result, by performing an operation on the subset of the specified user file.
- 11. The file switch of claim 10, wherein the computer programs of the file aggregation module include instructions for deferring processing of the user request and then repeating 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.
- 12. The file switch of claim 10, wherein the computer programs of the file aggregation module include instructions for returning a negative result in response to the user request when the aggregated lock acquisition result is a negative result.
- 13. The file switch of claim 9, wherein the file switch is logically positioned between a client computer from which the user request is received and the group of file servers.
- 14. A method of managing locks on a user file in a system in which the user file is divided into portions stored on a plurality of file servers, among a group of file servers in a computer network, comprising:
receiving a user request requiring a lock on a subset of the user file; accessing a metafile that stores information identifying a set of file servers that store respective defined portions of the user file; performing a lock acquisition operation on the 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 a lock acquisition result; and when the lock acquisition result is positive, continuing processing of the user request by performing an operation on the subset of the user file.
- 15. The method of claim 14, further including:
when the aggregated lock acquisition result is a negative result, deferring processing of the user request for defined period of time and then repeating performance of the lock acquisition operation.
- 16. The method of claim 14, further including:
when the aggregated lock acquisition result is a negative result, blocking processing of the user request.
- 17. The method of claim 14, wherein the continuing processing includes 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.
- 18. The method of claim 17, the continuing processing further including:
at each file server in the subset of file servers, performing an operation on the respective portion of the user file stored therein, and producing a result; and aggregating the results from the subset of file servers to produce an aggregated result.
- 19. The method of claim 14, wherein the receiving, accessing, and continuing processing are performed by a file switch logically positioned between a client computer from which the user request is received and the group of file servers.
- 20. A file switch for use in a computer network having a group of file servers and a plurality of client computers, the file switch comprising:
at least one processing unit for executing computer programs; at least one port for exchanging information with the file servers and client computers, the information exchanged including information concerning a specified user file; a file aggregation module including one or more computer programs, the computer programs including instructions for: receiving a user request requiring a lock on a subset of the specified user file; accessing a metafile that stores information identifying a set of file servers that store respective defined portions of the specified user file; initiating a lock acquisition operation on the metafile, the lock acquisition operation using a first range of file positions that at least partially fall outside file positions located within the metafile, the first range of file positions corresponding to subset of the specified user file, and producing a lock acquisition result; and when the lock acquisition result is positive, continuing processing of the user request by performing an operation on the subset of the specified user file.
- 21. The file switch of claim 20, wherein the instructions for continuing processing include instructions for 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 specified user file.
- 22. The file switch of claim 20, wherein the instructions for continuing processing include instructions for aggregating results produced by the subset of file servers to produce an aggregated result.
- 23. The file switch of claim 20, wherein the file switch is logically positioned between a client computer from which the user request is received and the group of file servers.
- 24. The file switch of claim 20, wherein the instructions for accessing a metafile include instructions for accessing cached information from the metafile.
- 25. A system for use in a computer network having a plurality of client computers, the system comprising:
a group of file servers; a file switch, the file switch including: at least one port for exchanging information with the file servers and client computers, the information exchanged including information concerning a specified user file; means for receiving a user request requiring a lock on a subset of the specified user file; means for accessing a metafile that stores information identifying a set of file servers that store respective defined portions of the specified user file; means for initiating a lock acquisition operation on the metafile, the lock acquisition operation using a first range of file positions that at least partially fall outside file positions located within the metafile, the first range of file positions corresponding to subset of the specified user file, and producing a lock acquisition result; and means for continuing processing of the user request, when the lock acquisition result is positive, by performing an operation on the subset of the specified user file.
- 26. The system of claim 25, wherein the instructions for continuing processing include instructions for 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 specified user file.
- 27. The system of claim 25, wherein the instructions for continuing processing include instructions for aggregating results produced by the subset of file servers to produce an aggregated result.
- 28. The system of claim 25, wherein the file switch is logically positioned between a client computer from which the user request is received and the group of file servers.
- 29. The system of claim 25, wherein the means for accessing a metafile comprise means for accessing cached information from the metafile.
- 30. A system for use in a computer network having a plurality of client computers, the system comprising:
a group of file servers; a file switch, the file switch including: at least one port for exchanging information with the file servers and client computers, the information exchanged including information concerning a specified user file; at least one processing unit for executing computer programs; a file aggregation module including one or more computer programs, the computer programs including instructions for: receiving a user request requiring a lock on a subset of the specified user file; accessing a metafile that stores information identifying a set of file servers that store respective defined portions of the specified user file; initiating a lock acquisition operation on the metafile, the lock acquisition operation using a first range of file positions that at least partially fall outside file positions located within the metafile, the first range of file positions corresponding to subset of the specified user file, and producing a lock acquisition result; and when the lock acquisition result is positive, continuing processing of the user request by performing an operation on the subset of the specified user file.
- 31. The system of claim 30, wherein the instructions for continuing processing include instructions for 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 specified user file.
- 32. The system of claim 30, wherein the instructions for continuing processing include instructions for aggregating results produced by the subset of file servers to produce an aggregated result.
- 33. The system of claim 30, wherein the file switch is logically positioned between a client computer from which the user request is received and the group of file servers.
- 34. The system of claim 30, wherein the instructions for accessing a metafile include instructions for accessing cached information from the metafile.
RELATED APPLICATIONS
[0001] This application claims priority from U.S. patent application Ser. No. 10/043,413, entitled File Switch and Switched File System, filed Jan. 10, 2002, and U.S. Provisional Patent Application No. 60/261,153, entitled FILE SWITCH AND SWITCHED FILE SYSTEM and filed Jan. 11, 2001, both of which are incorporated herein by reference.
[0002] This application is furthermore related to the following applications, each of which is filed on the same date as this application and is hereby incorporated by reference in its entirety: Transaction Aggregation in a Switched File System, attorney docket 11187-0004-999; Directory Aggregation for Files Distributed Over A Plurality of Servers in a Switched File System, attorney docket 11187-0005-999; Metadata Based File Switch And Switched File, attorney docket 11187-0006-999; Rule Based Aggregation of Files and Transactions in a Switched File System, attorney docket 11187-007-999; and Aggregated Opportunistic Lock and Aggregated Implicit Lock Management for Locking Aggregated Files in a Switched File System, attorney docket 11187-009-999.