File system for a plurality of storage classes
First Claim
1. An apparatus for controlling accesses to data in data files by a plurality of users of a data processing system, the data processing system including internal storage, external storage storing data files, a plurality of access paths between internal storage and external storage, and a file user interface by which the plurality of users request access to data files, the apparatus comprising:
- first means, coupled to the file user interface and the internal storage, for allocating the internal storage for temporary storage of current data to be accessed by the plurality of users, for deallocating internal storage from old data stored in the internal storage, and for generating requests for accesses with external storage for transfer of the current data to the allocated internal storage, and of updated old data from the deallocated internal storage; and
second means, coupled to the first means and the external storage and responsive to the requests for accesses, for managing transfers between internal storage and external storage through the plurality of access paths.
1 Assignment
0 Petitions
Accused Products
Abstract
A file system for managing data files for access by a plurality of users of a data processing system that includes internal storage for buffering, external storage, and a file user interface by which the plurality of users request access to data files. A first level, coupled to the file user interface in the internal storage allocates the internal storage for temporary storage of data to be accessed by the plurality of users, and generates requests for transactions with external storage in support of such allocations. A second level is coupled to the first level and the external storage and responds to the request for transactions with the external storage for managing the transactions for storage of data to, and retreival of data from, the external storage. The second level defines a plurality of physical storage classes which are characterized by pre-specified parameters that allocate data files subject of transactions to locations in external memory. In response to requests for transactions, the second level identifies one of the plurality of storage classes assigned to the data file subject of the transaction and carries out the transaction with the appropriate locations in external memory. At least one of the plurality of storage classes provides for utilization of a plurality of access paths in parallel for transactions involving data files assigned to such storage class. Further, at least one parameter pre-specified for storage classes identifies a level of reliability desired for the subject data files.
208 Citations
68 Claims
-
1. An apparatus for controlling accesses to data in data files by a plurality of users of a data processing system, the data processing system including internal storage, external storage storing data files, a plurality of access paths between internal storage and external storage, and a file user interface by which the plurality of users request access to data files, the apparatus comprising:
-
first means, coupled to the file user interface and the internal storage, for allocating the internal storage for temporary storage of current data to be accessed by the plurality of users, for deallocating internal storage from old data stored in the internal storage, and for generating requests for accesses with external storage for transfer of the current data to the allocated internal storage, and of updated old data from the deallocated internal storage; and second means, coupled to the first means and the external storage and responsive to the requests for accesses, for managing transfers between internal storage and external storage through the plurality of access paths. - 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. An apparatus for controlling access to data in data files by a plurality of users of a data processing system, the data processing system including internal storage, external storage, a plurality of access paths between internal storage and external storage, and a file user interface by which the plurality of users requests access to data files, wherein there is a plurality of physical storage classes characterized by prespecified parameters that map a data file subject of an access to locations in external memory, the apparatus comprising:
-
first means, coupled to the file user interface and the internal storage, for allocating the internal storage for temporary storage of current data in the data files to be accessed by the plurality of users, for deallocating internal storage from old data stored in the internal storage, and for generating requests for accesses with external storage for transfer of current data to allocated internal storage, and of updated old data from deallocated internal storage; and means, coupled to the first means, for specifying dependencies by users on locations in the internal storage allocated to the plurality of users, wherein the first means is responsive to the specified dependencies in allocating and deallocating the internal storage; logical mapping means, responsive to the requests for accesses with external storage, for assigning a logical address to data subject of each access; external mapping means, responsive to the logical address, for identifying one of the plurality of storage classes; and means, responsive to the identified storage class, for carrying out the access with the appropriate locations in external memory through a subset of the plurality of access paths. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
-
-
37. An apparatus in communication with a data processing system for storing a data file for sequential transfers to the data processing system, the data file including a plurality of local cells, each local cell including at least one block of data, wherein a block is a basic unit of transfer between the data processing system and the apparatus, the apparatus comprising:
-
a plurality of storage means for storing data; a plurality of logical input/output paths Pn, for n equal to 1 through N, each path coupled to a subset of the plurality of storage means and to the data processing system, so that local cells of data may be transmitted in parallel through the N paths between the data processing system and the plurality of storage means; and
whereinthe local cells in the data file are stored in the plurality of storage means in a sequence of local cells LCi for i equal to 1 to X, and wherein local cell LCi is stored in a storage Pn+k means coupled to path Pn ; and
local cell LCi+l is stored in a storage means coupled to path Pn+k, where k is not equal to zero. - View Dependent Claims (38, 39, 40, 41, 42)
-
-
43. An apparatus in communication with a data processing system for storing a data file for sequential transfers to the data processing system, the data file including a plurality of local cells, each local cell including at least one block of data that can be manipulated by the data processing system as a unit for access to the data file, the apparatus comprising:
-
a plurality of storage means for storing data; a number W of logical input/output paths, path 1 through path W, each path coupled to a subset of the plurality of storage means and to the data processing system, so that blocks of data may be transmitted in parallel through the W paths between the data processing system and the plurality of storage means; and
whereinthe data file is stored in the plurality of storage means in a sequence of X local cells, and local cell 1 in the sequence is stored in a storage means coupled to path 1, local cell 2 is stored in a storage means coupled to path 2, local cell W is stored in a storage means coupled to Path W, local cell W+1 is stored in a storage means coupled to path 1, local cell W+2 is stored in a storage means coupled to path 2, local cell 2W is coupled to a storage means coupled to path W, and local cell X is stored in a storage means coupled to path (((X-1)modW)+1). - View Dependent Claims (44, 45, 46, 47, 48)
-
-
49. An apparatus in communication with a data processing system for storing a data file for sequential transfers to the data processing system, the data file including a sequence of local cells LCi for i equal to 1 through X, each local cell including at least one block of data that can be manipulated as a unit by the data processing system for access to the data file, the apparatus comprising:
-
a plurality of storage means for storing data; a plurality of logical input/output paths Pn, n equal to 1 through W, each path coupled to a subset of the plurality of storage means and to the data processing system, so that blocks of data may be transmitted in parallel through the plurality of paths between the data processing system and the plurality of storage means; and means, coupled to the plurality of paths, for allocating the sequence of local cells LCi, for i equal to 1 to X, to at least a subset of the plurality of storage means, so that local cell LCi is stored in a storage means coupled to path Pn, local cell LCi+1 is stored in a storage means coupled to path Pn+k Pk, where k is not equal to zero. - View Dependent Claims (50)
-
-
51. An apparatus in communication with a data processing system for storing a data file for sequential transfers to the data processing system, the data file including a sequence of local cells LCi, for i equal to 1 through X, each local cell including at least one block of data that can be manipulated as a unit through the data processing system by users of the data file, the apparatus comprising:
-
a plurality of storage means for storing data; a plurality of logical input/output paths Pn, for n equal to 1 through W, each path coupled to a subset of the plurality of storage means and to the data processing system, so that blocks of data may be transmitted in parallel through the plurality of paths between the data processing system and the plurality of storage means; means, coupled to the plurality and paths to receive the blocks of data, for generating an error correction code ECCs for each set s of E local cells, where s goes from 1 to S, and S is equal to X/E rounded to the next larger integer; and means, coupled to the plurality of paths and to the means for generating an error correction code ECCs, for mapping the sequence of local cells LCi, for i equal to 1 to X, and error correction codes ECCs, for s equal to 1 to S, to at least a subset of the plurality of storage means, so that all local cells in the set s, and error correction code ECCs, define a cell, and local cells in the cell and each are stored in storage means coupled to different paths. - View Dependent Claims (52, 53, 54, 55, 56)
-
-
57. An apparatus in communication with a data processing system for storing a plurality of data files for sequential transfers to the data processing system, each data file including a sequence of local cells LCi, for i equal to 1 through X, where X is a parameter associated with each data file, each local cell including at least one block of data that can be manipulated as a unit through the data processing system by users of the data file, the apparatus comprising:
-
a plurality of storage means for storing data; a plurality of logical input/output paths Pn, n equal to 1 through N, each path coupled to a subset of the plurality of storage means and to the data processing system, so that data may be transmitted in parallel through the plurality of paths between the data processing system and the plurality of storage means; and means, coupled to the plurality of paths and to the data processing system, and responsive to parameters associated with each data file by the data processing system, for mapping the sequence of local cells LCi, for i equal to 1 to X, for each data file to at least a subset of the plurality of storage means, so that local cell LCi of a given data file is stored in a storage means coupled to path Pn, and local cell LCi+1 of the given data file is stored in a storage means coupled to path Pk, where k is not equal to n. - View Dependent Claims (58, 59, 60)
-
-
61. An apparatus in communication with a data processing system for storing a plurality of data files for sequential transfers to the data processing system, each data file including a sequence of local cells LCi, for i equal to 1 through X, where X is a parameter associated with each data file, N local cells equal a cell, and each local cell includes at least one block of data that can be manipulated as a unit through the data processing system by users of the data file, the apparatus comprising:
-
a plurality of storage means for storing data; a plurality of logical input/output paths Pn, n equal to 1 through N, each path coupled to a subset of the plurality of storage means and to the data processing system, so that data may be transmitted in parallel through the plurality of paths between the data processing system and the plurality of storage means; means, coupled to the plurality of paths and the data processing system to receive the blocks of data, for generating and error correction code ECCs, for storage in Z local cells, for a set s of E local cells of data, where s goes from 1 to S, and S equal to X/E rounded to the next larger integer, and N is equal to Z+E; and means, coupled to the plurality of paths and to the data processing system, and responsive to the parameters associated with each data file by the data processing system, for mapping the sequence of local cells LCi, for i equal to 1 to X, and the error correction codes ECCs, for s equal to 1 to S, for each data file to a subset of the plurality of storage means, so that all local cells of data in a given set and the local cells or error correction codes for the given set equal a cell of W local cells and each local cell in a cell is stored in storage means coupled to different paths. - View Dependent Claims (62, 63, 64, 65, 66, 67, 68)
-
Specification