Storage media data structure system and method
First Claim
1. A method of storing data in a grid-based data storage system comprising:
- defining an array of equal capacity data storage units, each defined in terms of a plurality of separate storage domains against a plurality of data storage blocks; and
allocating each of the data storage units for entirely storing either user data or fault tolerance data.
5 Assignments
0 Petitions
Accused Products
Abstract
Disclosed is a data storage architecture employing a plurality of data grids each comprising an array of equal capacity data storage blocks organized into a plurality of rows and a plurality of columns such that each column corresponds to a storage domain in a data storage system and each row of the plurality of rows corresponds to a plurality of data storage blocks, one data storage block from each column of the plurality of columns at the same physical address, with the plurality of rows each having a plurality of contiguous data storage blocks in each domain. Capacity grids are produce by applying one of a plurality of sparing versions that designate at least one data storage block in each row of the grid is designated as spare, Defined within each capacity grid are one or more data storage units. Each data storage unit reflects a storage format, such as a RAID level, and defines data storage blocks, mirror data blocks, and parity data blocks depending upon storage the format and can provide fault tolerance in the event of a domain failure. User data is stored exclusively in a first portion of the grid and parity data, if any, is exclusively stored in a second portion of the grid, providing optimized performance. Data access employs metadata that may comprise grid and storage unit descriptors, data storage unit format, and a sparing table.
73 Citations
34 Claims
-
1. A method of storing data in a grid-based data storage system comprising:
-
defining an array of equal capacity data storage units, each defined in terms of a plurality of separate storage domains against a plurality of data storage blocks; and
allocating each of the data storage units for entirely storing either user data or fault tolerance data. - View Dependent Claims (2, 3, 4, 8, 9, 13, 14)
-
-
5. (canceled)
-
6. (canceled)
-
7. (canceled)
-
10. (canceled)
-
11. (canceled)
-
12. (canceled)
-
15. (canceled)
- 16. A grid-based data storage system comprising an array of equal capacity data storage units, each defined in terms of a plurality of separate storage domains against a plurality of data storage blocks, wherein each data storage unit is individually allocated for entirely storing either user data or fault tolerance data.
-
18. A method of storing data in a grid-based data storage system comprising:
-
defining an array of equal capacity data storage units, each defined in terms of a plurality separate storage domains against a plurality of data storage blocks;
allocating each of the data storage units for entirely storing either user data or fault tolerance data in accordance with a selected first storage format; and
reallocating the data storage units for entirely storing either user data or fault tolerance data in accordance with a selected second storage format if the number of data storage units in the first storage format is less than or equal to the number of data storage units in the second storage format. - View Dependent Claims (19, 20)
-
-
21. A data structure having an array of equal capacity data storage units, each defined in terms of a plurality of separate storage domains against a plurality of data storage blocks, the data structure comprising a pointer that when multiplied by a storage capacity of said data storage blocks and by the number of rows of data storage units allocated for storing user data, and to which an offset, if any, is added, produces the base address in each storage domain at which said data storage grid begins.
-
22. (canceled)
-
23. (canceled)
-
24. (canceled)
-
25. A method of accessing data in a data storage system comprising:
-
defining an array of equal capacity data storage units, each defined in terms of a plurality of separate storage domains against a plurality of data storage blocks;
determining a domain and a physical address for at least one data storage block by applying an array pointer value to determine a base address of said array, applying a data storage unit pointer value to determine at least one domain to be accessed, and to determine a row such that the row number minus one is multiplied by a capacity of said storage blocks and added to a base address to produce a physical address; and
issuing an access command to said at least one domain that includes said physical address.
-
-
26. (canceled)
Specification