IP Library Granted Patent US 7,562,110
Granted Patent B2
US 7,562,110 · App. 10/043,413 · Granted Jul 14, 2009

File switch and 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,562,110
App. No.
10/043,413
Granted
Jul 14, 2009
Kind
B2
Abstract

An apparatus and method are provided in a computer network to decouple the client from the server, by placing a transparent network node, also termed a file switch or file switch computer, between the client and the server. Usage of such a file switch allows reduced latency in file transfers, as well as scalable mirroring, striping, spillover, and other features.

Claims (88)

1. A computer implemented method for aggregating file systems, comprising:

coupling a group of client computers to a group of file servers through a file switch in a computer network;

at the file switch, aggregating directories of multiple file systems in a plurality of file servers in the group of file servers by presenting them as a single directory to a respective client computer in the group of client computers; and

at the file switch, aggregating file objects of the multiple file systems, each of the file objects having portions stored in different file servers, by presenting them as a single file object to a respective client computer in the group of client computers.

2. The method of claim 1 , wherein the step of aggregating directories comprising:

receiving a file create request from a client to create a user file; the file create request including a user file name and a user file path;

selecting a set of file servers among the group of file servers for storing the user file;

determining a server file path for each selected file server;

storing, in the file switch, information identifying the set of file servers and the file paths corresponding to the user file; and

updating the directories on the set of file servers to indicate storage of the user file.

3. The method of claim 2 , further comprising:

receiving a file access request from the client, the file access request including information identifying the user file;

mapping the file access request with respect to the user file into a plurality of file requests directed to a plurality of file servers in the set of file servers, the mapping including reading the information identifying the set of file servers and the server file paths corresponding to the user file; and

executing the file access request in accordance with the set of file servers and the server file paths corresponding to the user file.

4. The method of claim 2 , wherein the step of determining includes mapping a user file path associated with the user file into a corresponding server file path in the set of file servers in accordance with a predetermined set of mapping rules.

5. The method of claim 1 , wherein the step of aggregating file objects comprises:

receiving a file object update request from a client, the file object update request includes a user file name and a user file path of a user file;

selecting a set of file servers among the group of file servers in accordance with the user file name and the user file path;

determining a server file path to access file objects corresponding to the user file for each file server in the set of file servers;

storing, in the file switch, information identifying the set of file servers and the server file paths corresponding to the user file; and

updating the file objects corresponding to the user file in the selected set of file servers.

6. The method of claim 5 , wherein the step of aggregating file objects further comprises:

receiving a file object read request from a client, the file object read request includes the user file name and user file path;

mapping the file object read request into a plurality of file requests directed to a plurality of file servers in the set of file servers, the mapping including reading the information identifying the set of file servers and the server file paths corresponding to the user file;

retrieving file objects corresponding to the user file from a plurality of file servers in the set of file servers; and

sending the file objects retrieved to the client.

7. The method of claim 5 , wherein the file objects include at least two file objects selected from the set consisting of creation dates, last modification dates, file sizes, disk usage values, access control lists, security descriptors, and archive indicators.

8. A computer-implemented method for aggregating file systems, comprising:

coupling a group of client computers to a group of file servers through a file switch in a computer network; and

at the file switch, aggregating a namespace of multiple file systems in a plurality of servers in the group of file servers by:

storing a set of name-mapping rules in the file switch; wherein the set of name-mapping rules includes a first rule for mapping a first set of user path names to server path names in a first server of the plurality of servers, and a second rule for mapping a second set of user path names to server path names in a second server of the plurality of servers;

receiving a file access transaction from a client, the file access transaction including a user file name and a user path name to a file in the group of file servers;

applying the set of name-mapping rules to the user path name to generate a server path name; and

executing the file access transaction in accordance with the server path name.

9. The method of claim 8 , wherein the name-mapping rules comprise:

a list of predefined user path names; and

a corresponding list of mapped server path names.

10. The method of claim 9 , wherein the step of applying comprises:

comparing the user path name to the list of predefined user path names; and

if the user path name matches one of the predefined user path names, replacing the user path name with the corresponding mapped server path name from the list of mapped server path names.

11. A file switch for use in a computer network having a group of file servers and a plurality of client computers, wherein the plurality of client computers are coupled to the group of file servers through the file switch, the file switch comprising:

at least one processing unit configured to execute computer programs;

at least one port adapted to exchange information with the file servers and client computers, the information exchanged including information concerning a specified file data; and

an aggregation module including one or more computer programs, the computer programs including instructions for:

at the file switch, aggregating directories of multiple file systems in a plurality of servers in the group of file servers by presenting them as a single directory to a respective client computer in the plurality of client computers; and

at the file switch, aggregating file objects of the multiple file systems, each of the file objects having portions stored in different file servers, by presenting them as a single file object to a respective client computer in the plurality of client computers.

12. The file switch of claim 11 , further including instructions for aggregating a namespace of multiple file systems in the group of file servers, the namespace aggregating instructions comprising instructions for:

storing a set of name-mapping rules in the file switch;

receiving, at the file switch, a file access transaction from a client, the file access transaction including a user file name and a user path name to a file in the group of file servers;

applying, at the file switch, the set of name-mapping rules to the user path name to generate a server path name; and

executing the file access transaction in accordance with the server path name.

13. The file switch of claim 12 , wherein the name-mapping rules comprise:

a list of predefined user path names; and

a corresponding list of mapped server path names.

14. The file switch of claim 12 , wherein the instructions for applying comprise instructions for:

comparing the user path name to the list of predefined user path names; and

if the user path name matches one of the predefined user path names, replacing the user path name with the corresponding mapped server path name from the list of mapped server path names.

15. The file switch of claim 11 , wherein the instructions for aggregating directories comprise instructions for:

receiving a file create request from a client, the file create request including a user file name and a user file path;

selecting a set of file servers among the group of file servers for storing the user file;

determining a server file path for each selected file server;

storing, in the file switch, information identifying the set of file servers and the server file paths corresponding to the user file; and

updating the directory structure on the set of file servers to indicate storage of the user file.

16. The file switch of claim 15 , further comprising instructions for:

receiving a file access request from the client, the file access request including the user file name;

mapping the file access request with respect to the user file name into a plurality of file requests directed to a plurality of file servers in the set of file servers, the mapping including reading the information identifying the set of file servers and the file paths corresponding to the user file; and

executing the file access request in accordance with the set of file servers and the server file paths corresponding to the user file.

17. The file switch of claim 15 , wherein the instructions for determining include instructions for mapping the user file path into a corresponding server file path in the set of file servers in accordance with a predetermined set of mapping rules.

18. The file switch of claim 11 , wherein the instructions for aggregating file objects comprise instructions for:

receiving a file object update request from a client, the file object update request includes a user file name and a user file path of a user file;

selecting a set of file servers among the group of file servers in accordance with the user file name and the user file path;

determining a server file path to access file objects corresponding to the user file for each file server in the set of file servers;

storing, in the file switch, information identifying the set of file servers and the file paths corresponding to the user file; and

updating the file objects corresponding to the user file in the selected set of file servers.

19. The file switch of claim 18 , wherein the instructions for aggregating file objects further comprise instructions for:

receiving a file object read request from a client, the file object read request includes the user file name and user file path;

mapping the file object read request into a plurality of file requests directed to a plurality of file servers in the set of file servers, the mapping including reading the information identifying the set of file servers and the server file paths corresponding to the user file;

retrieving file objects corresponding to the user file from a plurality of file servers in the set of file servers; and

sending the file objects retrieved to the client.

20. The file switch of claim 18 , wherein the file objects include at least two file objects selected from the set consisting of creation dates, last modification dates, file sizes, disk usage values, access control lists, security descriptors, and archive indicators.

21. A file switch for use in a computer network having a group of file servers and a plurality of client computers, wherein the plurality of client computers are coupled to the group of file servers through the file switch, the file switch comprising:

at least one processing unit configured to execute computer programs;

at least one port adapted to exchange information with the file servers and client computers, the information exchanged including information concerning a specified file data; and

an aggregation module including one or more computer programs, the computer programs including instructions for aggregating a namespace of multiple file systems in a plurality of servers in the group of file servers, the namespace aggregating instructions comprising instructions for:

storing a set of name-mapping rules in the file switch; wherein the set of name-mapping rules includes a first rule for mapping a first set of user path names to server path names in a first server of the plurality of servers, and a second rule for mapping a second set of user path names to server path names in a second server of the plurality of servers;

receiving, at the file switch, a file access transaction from a client, the file access transaction including a user file name and a user path name to a file in the group of file servers;

applying, at the file switch, the set of name-mapping rules to the user path name to generate a server path name; and

executing the file access transaction in accordance with the server path name.

Assignments (12)
PATENT SECURITY AGREEMENT Recorded Aug 6, 2024
From: RPX CORPORATION; RPX CLEARINGHOUSE LLC
To: BARINGS FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 068328/0674 →
RELEASE OF LIEN ON PATENTS Recorded Aug 5, 2024
From: BARINGS FINANCE LLC
To: RPX CORPORATION
Reel/Frame 068328/0278 →
RELEASE OF SECURITY INTEREST Recorded Oct 26, 2020
From: JEFFERIES FINANCE LLC
To: RPX CORPORATION
Reel/Frame 054486/0422 →
PATENT SECURITY AGREEMENT Recorded Oct 23, 2020
From: RPX CLEARINGHOUSE LLC; RPX CORPORATION
To: BARINGS FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 054198/0029 →
PATENT SECURITY AGREEMENT Recorded Oct 23, 2020
From: RPX CLEARINGHOUSE LLC; RPX CORPORATION
To: BARINGS FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 054244/0566 →
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 →
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 Apr 23, 2002
From: MILOUSHEV, VLADIMIR I.; NICKOLOV, PETER I.
To: Z-FORCE CORPORATION
Reel/Frame 012827/0038 →