Aggregated opportunistic lock and aggregated implicit lock management for locking aggregated files in a switched file system
First Claim
1. A file switch for use in a computer network having a group of file servers and a plurality of client computers, wherein the file switch may be logically positioned between a client computer from which a user request is received and the group of file servers, the file switch comprising:
- at least one processing unit;
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 stored computer programs for execution by the at least one processing unit, the computer programs including instructions for;
receiving a user request to access a subset of a specified user file;
identifying a subset of file servers that store portions of the user file that together comprise the subset of the specified user file;
sending an oplock request to each file server in the subset of file servers, and receiving oplock request replies from the subset of file servers;
aggregating the received oplock request replies to produce an aggregated oplock reply, such that the aggregated oplock reply is an oplock grant only when all the received oplock request replies are oplock grants; and
caching data from the subset of the specified user file only when the aggregate oplock reply is an oplock grant.
11 Assignments
0 Petitions
Accused Products
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 supports caching of a particular aggregated data file either locally in a client computer or in the file switch in accordance with the exclusivity level of an opportunistic lock granted to the entity that requested caching. The opportunistic lock can be obtained either on the individual data files stored in the file servers or on the metadata files that contain the location of each individual data files in the file servers. The opportunistic lock can be broken if another client tries to access the aggregated data file. Opportunistic locks allows client-side caching while preserving data integrity and consistency, hence the performance of the switched file system is increased.
-
Citations
26 Claims
-
1. A file switch for use in a computer network having a group of file servers and a plurality of client computers, wherein the file switch may be logically positioned between a client computer from which a user request is received and the group of file servers, the file switch comprising:
- at least one processing unit;
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 stored computer programs for execution by the at least one processing unit, the computer programs including instructions for;
receiving a user request to access a subset of a specified user file;
identifying a subset of file servers that store portions of the user file that together comprise the subset of the specified user file;
sending an oplock request to each file server in the subset of file servers, and receiving oplock request replies from the subset of file servers;
aggregating the received oplock request replies to produce an aggregated oplock reply, such that the aggregated oplock reply is an oplock grant only when all the received oplock request replies are oplock grants; and
caching data from the subset of the specified user file only when the aggregate oplock reply is an oplock grant. - View Dependent Claims (2, 3, 4)
- at least one processing unit;
-
5. A method of caching data from user files stored in shared data computer network, 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 to access a subset of a specified user file, wherein the request does not include a request for lock on the subset of the specified user file;
identifying a subset of file servers that store portions of the user file that together comprise the subset of the specified user file;
sending a lock request to each file server in the subset of file servers, and receiving lock replies from the subset of file servers;
aggregating the received lock replies to produce an aggregated lock reply, such that the aggregated lock reply is a lock grant only when all the received oplock request replies are oplock grants; and
only when the aggregated lock reply is a lock grant, continuing processing of the user request by performing an operation on the subset of the specified user file. - View Dependent Claims (6, 7, 8)
- receiving a user request to access a subset of a specified user file, wherein the request does not include a request for lock on the subset of the specified user file;
-
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 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;
means for receiving a user request to access a subset of a specified user file, wherein the request does not include a request for lock on the subset of the specified user file;
means for identifying a subset of file servers that store portions of the user file that together comprise the subset of the specified user file;
means for sending a lock request to each file server in the subset of file servers, and receiving lock replies from the subset of file servers;
means for aggregating the received lock replies to produce an aggregated lock reply, such that the aggregated lock reply is a lock grant only when all the received oplock request replies are oplock grants; and
means, operative only when the aggregated lock reply is a lock grant, for continuing processing of the user request by performing an operation on the subset of the specified user file.
- at least one port for exchanging information with the file servers and client computers, the information exchanged including information concerning a specified user file;
-
10. 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;
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 stored computer programs for execution by the at least one processing unit, the computer programs including instructions for;
receiving a user request to access a subset of a specified user file, wherein the request does not include a request for lock on the subset of the specified user file;
identifying a subset of file servers that store portions of the user file that together comprise the subset of the specified user file;
sending a lock request to each file server in the subset of file servers, and receiving lock replies from the subset of file servers;
aggregating the received lock replies to produce an aggregated lock reply, such that the aggregated lock reply is a lock grant only when all the received oplock request replies are oplock grants; and
only when the aggregated lock reply is a lock grant, continuing processing of the user request by performing an operation on the subset of the specified user file. - View Dependent Claims (11, 12, 13)
- at least one processing unit;
-
14. 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;
a file aggregation module including one or more stored computer programs for execution by the at least one processing unit, the computer programs including instructions for;
receiving a user request to access a subset of a specified user file, the request including a request for an opportunistic lock on the subset of the specified user file;
accessing metadata identifying a set of file servers for storing respective defined portions of the specified user file;
identifying, based on the metadata, a subset of the file servers that store portions of the user file that together comprise the subset of the specified user file;
sending an oplock request to each file server in the subset of file servers, and receiving oplock request replies from the subset of file servers;
aggregating the received oplock request replies to produce an aggregated oplock reply, such that the aggregated oplock reply is an oplock grant only when all the received oplock request replies are oplock grants;
sending the aggregated oplock reply to a sender of the user request, thereby enabling the sender to cache data from the subset of the specified user file only when the aggregate oplock reply is an oplock grant. - View Dependent Claims (15, 16, 17, 18, 19)
- a group of file servers;
-
20. 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 to access a subset of a specified user file, the request including a request for an opportunistic lock on the subset of the specified user file;
means for identifying a subset of file servers that store portions of the user file that together comprise the subset of the specified user file;
means for sending an oplock request to each file server in the subset of file servers, and receiving oplock request replies from the subset of file servers;
means for aggregating the received oplock request replies to produce an aggregated oplock reply, such that the aggregated oplock reply is a lock grant only when all the received lock request replies are oplock grants; and
means for sending the aggregated oplock reply to a sender of the user request, thereby enabling the sender to cache data from the subset of the specified user file only when the aggregate lock reply is an oplock grant.
- a group of file servers;
-
21. 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;
a file aggregation module including one or more stored computer programs for execution by the at least one processing unit, the computer programs including instructions for;
receiving a user request to access a subset of a specified user file, the request including a request for an opportunistic lock on the subset of the specified user file;
identifying a subset of file servers that store portions of the user file that together comprise the subset of the specified user file;
sending an oplock request to each file server in the subset of file servers, and receiving oplock request replies from the subset of file servers;
aggregating the received oplock request replies to produce an aggregated oplock reply, such that the aggregated oplock reply is an oplock grant only when all the received oplock request replies are oplock grants; and
sending the aggregated oplock reply to a sender of the user request, thereby enabling the sender to cache data from the subset of the specified user file only when the aggregate oplock reply is an oplock grant. - View Dependent Claims (22, 23, 24, 25, 26)
- a group of file servers;
Specification