Method to pass application knowledge to a storage array and optimize block level operations
First Claim
Patent Images
1. A method for writing data, comprising:
- receiving a write request to store a file, wherein the write request comprises context information specifying at least a bandwidth priority;
generating a metadata portion based on the context information;
dividing the file into a plurality of data portions;
generating a plurality of blocks wherein each of the plurality of blocks comprises the metadata portion and one of the plurality of data portions;
determining at least one location in the storage array in which to store the plurality of blocks based, at least in part, on the context information, wherein the at least one location is one selected from a group consisting of a higher bandwidth location and a lower bandwidth location; and
storing the plurality of blocks in a storage array at the at least one location.
10 Assignments
0 Petitions
Accused Products
Abstract
A method and system for writing data, including receiving a request to store a file, where the request has context information. The method further includes generating a metadata portion based on the context information, dividing the file into a plurality of data portions, generating a plurality of blocks where each of the plurality of blocks has the metadata portion and one of the plurality of data portions, and storing the plurality of blocks in a storage array.
-
Citations
19 Claims
-
1. A method for writing data, comprising:
-
receiving a write request to store a file, wherein the write request comprises context information specifying at least a bandwidth priority; generating a metadata portion based on the context information; dividing the file into a plurality of data portions; generating a plurality of blocks wherein each of the plurality of blocks comprises the metadata portion and one of the plurality of data portions; determining at least one location in the storage array in which to store the plurality of blocks based, at least in part, on the context information, wherein the at least one location is one selected from a group consisting of a higher bandwidth location and a lower bandwidth location; and storing the plurality of blocks in a storage array at the at least one location. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for performing actions on blocks in a storage array, the method comprising:
-
initiating, by a storage controller, a first action specifying first context information; identifying, by the storage controller, a first set of blocks in the storage array based on a matching of the first context information to first context metadata included in each block of the first set of blocks; and performing, by the storage controller, the first action to the first set of blocks, wherein the first context metadata specifies that each block in the first set of blocks has a high bandwidth priority, wherein performing the first action moves the first set of blocks from a first storage device in the storage array to a second storage device in the storage array, wherein the second storage device in the storage array is associated with a higher bandwidth. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 18, 19)
-
-
16. A non-transitory computer readable medium comprising computer readable program code, which when executed by a computer processor enables the computer processor to:
-
receive a write request to store a file, wherein the write request comprises context information specifying at least a bandwidth priority; generate a metadata portion based on the context information; divide the file into a plurality of data portions; generate a plurality of blocks wherein each of the plurality of blocks comprises the metadata portion and one of the plurality of data portions; determine at least one location in a storage array in which to store the plurality of blocks based, at least in part, on the context information, wherein the at least one location is one selected from a group consisting of a higher bandwidth location and a lower bandwidth location; and store the plurality of blocks in the storage array at the at least one location. - View Dependent Claims (17)
-
Specification