← Back to Patent Explorer
US6374336B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Computer system and process for transferring multiple high bandwidth streams of data between multiple storage units and multiple applications in a scalable and reliable manner

Assignee: Avid Technology Inc
•
Filing: 1998-04-03
•
Granted: 2002-04-16
•
Expires: 2018-04-03
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Multiple applications request data from multiple storage units over a computer network. The data is divided into segments and each segment is distributed randomly on one of several storage units, independent of the storage units on which other segments of the media data are stored. Redundancy information corresponding to each segment also is distributed randomly over the storage units. The redundancy information for a segment may be a copy of the segment, such that each segment is stored on at least two storage units. The redundancy information also may be based on two or more segments. This random distribution of segments of data and corresponding redundancy information improves both scalability and reliability. When a storage unit fails, its load is distributed evenly over to remaining storage units and its lost data may be recovered because of the redundancy information. When an application requests a selected segment of data, the request may be processed by the storage unit with the shortest queue of requests. Random fluctuations in the load applied by multiple applications on multiple storage units are balanced nearly equally over all of the storage units. This combination of techniques results in a system which can transfer multiple, independent high-bandwidth streams of data in a scalable manner in both directions between multiple applications and multiple storage units.

Inventors

  • 👤 Eric C. Peters
  • 👤 Stanley Rabinowitz
  • 👤 Herbert R. Jacobs
  • 👤 Richard Baker Gillett, Jr.
  • 👤 Peter J. Fasciano

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-06 20:11
CPC Classifications
H; H04; H04L; H04L67/00; H04L67/01; H04L67/10; H04L67/1097; G; G06; G06F; G06F11/00; G06F11/07; G06F11/08; G06F11/10; G06F11/1076; G06F11/16; G06F11/20; G06F11/2053; G06F11/2094; G06F11/2097; G06F16/00; G06F16/10; G06F16/18; G06F16/182; G06F16/184; G06F16/1844; G06F16/70; H04L65/00; H04L65/60; H04L65/61; H04L65/612; H04L67/50; H04L67/51; H04N; H04N21/00; H04N21/20; H04N21/21; H04N21/218; H04N21/21815; H04N21/2182; H04N21/23; H04N21/231; H04N21/23103; H04N21/23116; H04N21/2312; H04N21/2315; H04N21/232; H04N21/239; H04N21/2393; H04N21/2396; H04N21/24; H04N21/2405; H04N21/241; H04N21/25; H04N21/262; H04N21/40; H04N21/43; H04N21/44; H04N21/44004; H04N21/442; H04N21/47; H04N21/472; H04N21/47202; H04N21/80; H04N21/83; H04N21/845; H04N21/8456; H04N7/00; H04N7/16; H04N7/173; H04N7/17309; H04N7/17336; G06F11/1658; G06F11/1662; G06F2211/00; G06F2211/10; G06F2211/1002; G06F2211/1028; H04L67/1001; H04L67/1029

Claims Analysis

Total Claims: 12
Claim 1
Independent Claim 293 words
A file system for a computer, enabling the computer to access remote independent storage units over a computer network in response to a request, from an application executed on the computer, to read data stored in a file on the storage units, wherein a file includes segments of the data and corresponding redundancy information for each segment, and wherein, for each file, each segment of the data is stored on a randomly or pseudorandomly selected one of the storage units, and wherein, for each segment of the data, the corresponding redundancy information is stored on a randomly or pseudorandomly selected one of the storage units, the file system comprising: means, responsive to the request to read data from a file, for selecting, for each segment of the requested data, one of the storage units on which data representing the segment is stored; means for reading each segment of the requested data from the selected storage unit for the segment; means for serializing the segments read from the selected storage units; and means for providing the serialized data to the application; wherein the means for selecting includes: in the file system: means for requesting data from one of the storage units, indicating an estimated time; means for requesting data from another of the storage units, indicating an estimated time, if the first storage unit rejects the request; and means for requesting the data from the first storage unit if the second storage unit rejects the request; and in each storage unit: means for rejecting a request for data if the request cannot be serviced by the storage unit within the estimated time; and means for accepting a request for data if the request can be serviced by the storage unit within the estimated time.
Claim 2
Dependent Claim 293 words
A file system for a computer, enabling the computer to access remote independent storage units over a computer network in response to a request, from an application executed on the computer, to read data stored in a file on the storage units, wherein a file includes segments of the data and corresponding redundancy information for each segment, and wherein, for each file, each segment of the data is stored on a randomly or pseudorandomly selected one of the storage units, and wherein, for each segment of the data, the corresponding redundancy information is stored on a randomly or pseudorandomly selected one of the storage units, the file system comprising: means, responsive to the request to read data from a file, for selecting, for each segment of the requested data, one of the storage units on which data representing the segment is stored; means for reading each segment of the requested data from the selected storage unit for the segment; means for serializing the segments read from the selected storage units; and means for providing the serialized data to the application; wherein the means for selecting includes: in the file system: means for requesting data from one of the storage units, indicating an estimated time; means for requesting data from another of the storage units, indicating an estimated time, if the first storage unit rejects the request; and means for requesting the data from the first storage unit if the second storage unit rejects the request; and in each storage unit: means for rejecting a request for data if the request cannot be serviced by the storage unit within the estimated time; and means for accepting a request for data if the request can be serviced by the storage unit within the estimated time.
Claim 3
Dependent Claim 304 words
A file system for a computer, enabling the computer to access remote independent storage units over a computer network in response to a request, from an application executed on the computer, to read data stored in a file on the storage units, wherein a file includes segments of the data and corresponding redundancy information for each segment, and wherein, for each file, each segment of the data is stored on a randomly or pseudorandomly selected one of the storage units, and wherein, for each segment of the data, the corresponding redundancy information is stored on a randomly or pseudorandomly selected one of the storage units, the file system comprising: means, responsive to the request to read data from a file, for selecting, for each segment of the requested data, one of the storage units on which data representing the segment is stored; means for reading each segment of the requested data from the selected storage unit for the segment; means for serializing the segments read from the selected storage units; and means for providing the serialized data to the application; wherein the means for reading each segment comprises means for scheduling the transfer of the data from the selected storage unit such that the storage unit efficiently transfers data, and includes: in the file system: means for requesting transfer of the data from the selected storage unit, indicating a waiting time; means for requesting the data from another storage unit if the selected storage unit rejects the request to transfer the data; and in the storage unit: means for rejecting a request to transfer data if the data is not available to be transferred from the storage unit by the indicated waiting time; and means for transferring the data if the selected storage unit is able to transfer the data within the waiting time.
Claim 4
Dependent Claim 304 words
A file system for a computer, enabling the computer to access remote independent storage units over a computer network in response to a request, from an application executed on the computer, to read data stored in a file on the storage units, wherein a file includes segments of the data and corresponding redundancy information for each segment, and wherein, for each file, each segment of the data is stored on a randomly or pseudorandomly selected one of the storage units, and wherein, for each segment of the data, the corresponding redundancy information is stored on a randomly or pseudorandomly selected one of the storage units, the file system comprising: means, responsive to the request to read data from a file, for selecting, for each segment of the requested data, one of the storage units on which data representing the segment is stored; means for reading each segment of the requested data from the selected storage unit for the segment; means for serializing the segments read from the selected storage units; and means for providing the serialized data to the application; wherein the means for reading each segment comprises means for scheduling the transfer of the data from the selected storage unit such that the storage unit efficiently transfers data, and includes: in the file system: means for requesting transfer of the data from the selected storage unit, indicating a waiting time; means for requesting the data from another storage unit if the selected storage unit rejects the request to transfer the data; and in the storage unit: means for rejecting a request to transfer data if the data is not available to be transferred from the storage unit by the indicated waiting time; and means for transferring the data if the selected storage unit is able to transfer the data within the waiting time.
Claim 5
Dependent Claim 245 words
A file system for a computer, enabling the computer to access remote independent storage units over a computer network in response to a request, from an application executed on the computer, to read data stored on the storage units, wherein segments of the data and corresponding redundancy information are randomly or pseudorandomly distributed among the plurality of storage units, the file system comprising: means, responsive to the request to read data, for selecting, for each segment of the requested data, one of the storage units on which data representing the segment is stored; means for transferring the data from the selected storage unit if the selected storage unit has the data available within an indicated waiting time; means for transferring the data from another storage unit if the selected storage unit does not have the data available within the indicated waiting time; and means for providing the transferred data to the application; wherein the means for selecting comprises: means for selecting a first one of the storage units if the first storage unit can transfer the segment within a first estimated time, and for selecting a second one of the storage units if the second one of the storage units can transfer the segment within a second estimated time and if the first storage unit cannot transfer the segment within the first estimated time, and for selecting the first storage unit if the second storage unit cannot transfer the segment within the second estimated time.
Claim 6
Dependent Claim 245 words
A file system for a computer, enabling the computer to access remote independent storage units over a computer network in response to a request, from an application executed on the computer, to read data stored on the storage units, wherein segments of the data and corresponding redundancy information are randomly or pseudorandomly distributed among the plurality of storage units, the file system comprising: means, responsive to the request to read data, for selecting, for each segment of the requested data, one of the storage units on which data representing the segment is stored; means for transferring the data from the selected storage unit if the selected storage unit has the data available within an indicated waiting time; means for transferring the data from another storage unit if the selected storage unit does not have the data available within the indicated waiting time; and means for providing the transferred data to the application; wherein the means for selecting comprises: means for selecting a first one of the storage units if the first storage unit can transfer the segment within a first estimated time, and for selecting a second one of the storage units if the second one of the storage units can transfer the segment within a second estimated time and if the first storage unit cannot transfer the segment within the first estimated time, and for selecting the first storage unit if the second storage unit cannot transfer the segment within the second estimated time.
Claim 7
Dependent Claim 21 words
The file system of claim 3 , wherein the redundancy information corresponding to a segment is a copy of the segment.
Claim 8
Dependent Claim 273 words
A file system for a computer, enabling the computer to access remote independent storage units over a computer network in response to a request, from an application executed on the computer, to read data stored in a file on the storage units, wherein a file includes segments of the data and corresponding redundancy information for each segment, and wherein, for each file, each segment of the data is stored on a randomly or pseudorandomly selected one of the storage units, and wherein, for each segment of the data, the corresponding redundancy information is stored on a randomly or pseudorandomly selected one of the storage units, the file system comprising: means, responsive to the request to read data from a file, for selecting, for each segment of the requested data, one of the storage units on which data representing the segment is stored; means for reading each segment of the requested data from the selected storage unit for the segment; means for serializing the segments read from the selected storage units; and means for providing the serialized data to the application; wherein the means for selecting comprises: means for selecting a first one of the storage units if the first storage unit can transfer the segment within a first estimated time, and for selecting a second one of the storage units if the second one of the storage units can transfer the segment within a second estimated time and if the first storage unit cannot transfer the segment within the first estimated time, and for selecting the first storage unit if the second storage unit cannot transfer the segment within the second estimated time.
Claim 9
Dependent Claim 273 words
A file system for a computer, enabling the computer to access remote independent storage units over a computer network in response to a request, from an application executed on the computer, to read data stored in a file on the storage units, wherein a file includes segments of the data and corresponding redundancy information for each segment, and wherein, for each file, each segment of the data is stored on a randomly or pseudorandomly selected one of the storage units, and wherein, for each segment of the data, the corresponding redundancy information is stored on a randomly or pseudorandomly selected one of the storage units, the file system comprising: means, responsive to the request to read data from a file, for selecting, for each segment of the requested data, one of the storage units on which data representing the segment is stored; means for reading each segment of the requested data from the selected storage unit for the segment; means for serializing the segments read from the selected storage units; and means for providing the serialized data to the application; wherein the means for selecting comprises: means for selecting a first one of the storage units if the first storage unit can transfer the segment within a first estimated time, and for selecting a second one of the storage units if the second one of the storage units can transfer the segment within a second estimated time and if the first storage unit cannot transfer the segment within the first estimated time, and for selecting the first storage unit if the second storage unit cannot transfer the segment within the second estimated time.
Claim 10
Dependent Claim 219 words
A file system for a computer, enabling the computer to access remote independent storage units over a computer network in response to a request, from an application executed on the computer, to read data stored on the storage units, wherein segments of the data and corresponding redundancy information are randomly or pseudorandomly distributed among the plurality of storage units, wherein the redundancy information corresponding to a segment is a copy of the segment, the file system comprising: means for selecting for each segment of the requested data one of the storage units on which the segment is stored, by selecting a first one of the storage units if the first storage unit can transfer the segment within a first estimated time, and by selecting a second one of the storage units if the second one of the storage units can transfer the segment within a second estimated time and if the first storage unit cannot transfer the segment within the first estimated time, and selecting the first storage unit if the second storage unit cannot transfer the segment within the second estimated time; means for reading each segment of the requested data from the selected storage unit for the segment; and means for providing the data to the application when the data is received from the identified storage units.
Claim 11
Dependent Claim 219 words
A file system for a computer, enabling the computer to access remote independent storage units over a computer network in response to a request, from an application executed on the computer, to read data stored on the storage units, wherein segments of the data and corresponding redundancy information are randomly or pseudorandomly distributed among the plurality of storage units, wherein the redundancy information corresponding to a segment is a copy of the segment, the file system comprising: means for selecting for each segment of the requested data one of the storage units on which the segment is stored, by selecting a first one of the storage units if the first storage unit can transfer the segment within a first estimated time, and by selecting a second one of the storage units if the second one of the storage units can transfer the segment within a second estimated time and if the first storage unit cannot transfer the segment within the first estimated time, and selecting the first storage unit if the second storage unit cannot transfer the segment within the second estimated time; means for reading each segment of the requested data from the selected storage unit for the segment; and means for providing the data to the application when the data is received from the identified storage units.
Claim 12
Dependent Claim 21 words
The file system of claim 6 , wherein the redundancy information corresponding to a segment is a copy of the segment.

References Cited (Backward Citations)

US4887204A Cited
US5485474A Cited
US5517652A Cited
US5544347A Cited
US5442749A Cited
US5333299A Cited
US5423037A Cited
US5555404A Cited
US5262875A Cited
US5623690A Cited
US5420984A Cited
US5530577A Cited
US5559641A Cited
US5371852A Cited
US5581784A Cited
US5734925A Cited
US5754882A Cited
US5737595A Cited
US5526132A Cited
US5559549A Cited
US5394526A Cited
US5463765A Cited
US5508732A Cited
US5550577A Cited
US5553005A Cited
US5585852A Cited
US5692128A Cited
US5550982A Cited
US5559984A Cited
US5510905A Cited
US5610841A Cited
US5542087A Cited
US5473362A Cited
US5647047A Cited
US5594924A Cited
US5592626A Cited
US5544327A Cited
US5521630A Cited
EP0701198A1 Cited
US5732239A Cited
US5555244A Cited
US5434994A Cited
US5757415A Cited
US5583561A Cited
US5642171A Cited
US5566297A Cited
US5546118A Cited
US5920702A Cited
US5583868A Cited
US5537533A Cited
US5559764A Cited
US5694334A Cited
US5586264A Cited
US5712976A Cited
US5574845A Cited
US5915094A Cited
US5799174A Cited
US5537408A Cited
US5559808A Cited
US5684963A Cited
GB2299424A Cited
US6112223A Cited
EP0740247A2 Cited
US5592612A Cited
US5644720A Cited
US5768681A Cited
US6047309A Cited
US6160547A Cited
US5862312A Cited
US5996089A Cited
US5737747A Cited
US5829046A Cited
US5933603A Cited
US5950015A Cited
GB2312318A Cited
GB2312316A Cited
GB2312319A Cited
GB2312317A Cited
WO1998010586A1 Cited
US6021408A Cited
US5978363A Cited
US5926649A Cited
US6138221A Cited
US6185621B1 Cited
US6061732A Cited
US6021508A Cited
US6032216A Cited
US5946686A Cited
US5999976A Cited
US5940841A Cited
US5950199A Cited
US6023706A Cited
US5987477A Cited
US5940838A Cited
US5974424A Cited
US5956734A Cited
US5963963A Cited
US5893086A Cited
US5960446A Cited
US6134596A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2005-04-15 2005-10-15 2006-04-16 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2009-04-15 2009-10-15 2010-04-16 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2013-04-15 2013-10-15 2014-04-16 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag