Claims
- 1. A data storage system, comprising:
a plurality of storage units; a plurality of client systems, wherein each client system has a file system through which an application executed on the client system accesses data; a network interconnecting the plurality of storage units and the plurality of client systems; wherein the file system of each client system accesses data in one or more files using the plurality of storage units, wherein a file has a name and includes segments of data and redundancy information for each segment, wherein the redundancy information for a segment is one or more copies of the segment; wherein the application executed on the client system accesses data in a file using a request to the file system indicating the name of the file; wherein client code accessed by the file system in each client system includes means for writing data to a file comprising:
means for selecting, for each segment of the data, at least two of the storage units for storing the segment; means for initiating a request to store each segment of the data to each of the at least two storage units selected for the segment, wherein the request includes an identifier of the segment; and means for locally accessing information indicative of the at least two storage units on which each segment of a file is stored; wherein each storage unit identifies a location on the storage unit for storing a received segment of data, stores the received segment of data at the identified location and maintains information associating the identifier of the segment of data with a location of each segment of data on the storage unit; wherein client code accessed by the file system in each client system includes means for reading data from a file comprising:
means for selecting, for each segment of the requested data, one of the storage units on which the segment is stored using the locally accessed information indicative of the at least two storage units on which each segment of a file is stored; and means for reading each segment of the requested data from the selected storage unit for the segment, including sending a request, for each segment, to the storage unit selected for the segment including the identifier of the segment; and means for providing the read data to the application; and wherein each storage unit retrieves a requested segment of data from the storage unit using the information associating the identifier of the segment of data with a location of each segment of data on the storage unit to obtain the location of the segment of data on the storage unit.
- 2. The data storage system of claim 1, wherein the means for reading each segment of the requested data includes means for scheduling data transfers over the network to efficiently utilize network bandwidth.
- 3. The data storage system of claim 1, wherein the means for reading each segment of the requested data comprises:
a plurality of buffers, wherein each buffer corresponds to a segment of the requested data; means for ordering the buffers by a due time at the client and whether the requested data is expected to be available in a buffer at the storage unit; and means for selecting a segment to be requested from a storage unit according to the ordering of the buffers.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit under 35 U.S.C. §120, and is a continuing application of U.S. patent application Ser. No. 09/549,841, filed Apr. 14, 2000, pending, and of U.S. patent application Ser. No. 09/054,761, filed on Apr. 3, 1998, pending, and U.S. patent application Ser. No. 09/006,070, filed Jan. 12, 1998, pending, which claims the benefit under 35 U.S.C. §120, and is a continuing application of U.S. patent application Ser. No. 08/997,769, filed Dec. 24, 1997, abandoned.
Divisions (1)
|
Number |
Date |
Country |
Parent |
09724327 |
Nov 2000 |
US |
Child |
10145495 |
May 2002 |
US |
Continuations (4)
|
Number |
Date |
Country |
Parent |
09549841 |
Apr 2000 |
US |
Child |
10145495 |
May 2002 |
US |
Parent |
09054761 |
Apr 1998 |
US |
Child |
10145495 |
May 2002 |
US |
Parent |
09006070 |
Jan 1998 |
US |
Child |
10145495 |
May 2002 |
US |
Parent |
08997769 |
Dec 1997 |
US |
Child |
10145495 |
May 2002 |
US |