Data path controller architecture
First Claim
1. A file server comprising:
- a network interface for communicating with one or more clients;
a storage interface for communicating with one or more disk drives;
a data engine configured to communicate with said storage interface to receive file data from said one or more disk drives, said data engine further configured to communicate with said network interface to send file data to said one or more clients; and
a CPU configured to queue transaction requests for said data engine in response to file requests from said one or more clients, said data engine configured to receive file data in response to at least a portion of said transaction requests, said data engine configured to send file data to said one or more clients in response to at least a portion of said transaction requests.
13 Assignments
0 Petitions
Accused Products
Abstract
A data path controller architecture is disclosed. The architecture includes a network interface for communicating with one or more clients, a storage interface for communicating with one or more disk drives. A data engine configured to communicate with the storage interface to receive file data from the one or more disk drives. The data engine communicates with the network interface to send file data to the one or more clients. A CPU is configured to queue transaction requests for the data engine in response to file requests from the clients. The data engine receives file data in response to at least a portion of the transaction requests. The data engine sends file data to the one or more clients in response to the transaction requests.
94 Citations
52 Claims
-
1. A file server comprising:
-
a network interface for communicating with one or more clients;
a storage interface for communicating with one or more disk drives;
a data engine configured to communicate with said storage interface to receive file data from said one or more disk drives, said data engine further configured to communicate with said network interface to send file data to said one or more clients; and
a CPU configured to queue transaction requests for said data engine in response to file requests from said one or more clients, said data engine configured to receive file data in response to at least a portion of said transaction requests, said data engine configured to send file data to said one or more clients in response to at least a portion of said transaction requests. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 49)
-
-
28. A method of providing file services, comprising:
-
receiving a file request from a client, said request received by a first processing module;
accessing metadata to locate file data corresponding to said file request, said metadata stored in a metadata cache provided to said first processing module;
queuing at least one storage transaction requests to a storage interface, said storage transaction request queued by said first processing module;
storing disk data retrieved as a result of said storage transaction request in a data cache operably connected to a data engine, said data engine operating asynchronously with respect to said first processing module;
queuing one or more network transaction requests to a network interface, said network transaction request queued by said first processing module upon completion of said at least one storage transaction request; and
sending file data from said data cache to said client according to said network transaction request, wherein said sending operation is performed asynchronously, with respect to said first processing module, by said data engine and said network interface.
-
-
48. An apparatus comprising:
-
a network interface for communicating with one or more clients;
a storage interface for communicating with one or more disk drives;
means for receiving file requests from said clients, managing file system metadata, queuing network transaction requests to said network interface, and queuing storage transaction requests to said storage interface; and
means for receiving received data from said storage interface and storing at least a portion of said received data in a data cache according to a first address word containing a first opcode provided from at least one of said queued storage transaction requests, and for sending file data from said data cache to said network interface according to a second address word containing a second opcode provided from at least one of said queued network transaction requests.
-
-
50. A method of providing file services, comprising:
-
receiving a write request from a client, said write request received by a first processing module;
accessing metadata to locate a file corresponding to said write request, said metadata stored in a metadata cache provided to said first processing module;
queuing a network transaction request to a network interface, said network transaction request queued by said first processing module to retrieve, from said client, data to be written to said file;
storing disk data retrieved as a result of said network transaction request in a data cache operably connected to a data engine, said data engine operating asynchronously with respect to said first processing module;
queuing at least one storage transaction request to a storage interface, said storage transaction request queued by said first processing module upon completion of said network transaction request; and
sending file data from said data cache to said storage interface according to said storage transaction request, wherein said sending operation is performed by said data engine and said network interface asynchronously with respect to said first processing module.
-
-
51. An apparatus comprising:
-
a network interface for communicating with one or more clients;
a storage interface for communicating with one or more disk drives;
means for receiving write requests from said clients, managing file system metadata, queuing network transaction requests to said network interface, and queuing storage transaction requests to said storage interface; and
means for receiving write data from said network interface and storing at least a portion of said write data in a data cache according to a first address word containing a first opcode provided from at least one of said queued network transaction requests, and for sending file data from said data cache to said storage interface according to a second address word containing a second opcode provided from at least one of said queued storage transaction requests. - View Dependent Claims (52)
-
Specification