Mapping data blocks to storage blocks to wrap around storage devices
AssigneeIntel Corporation
InventorSamanatha J. Edirisooriya
Life of this patent
Estimating the term…
Abstract
Provided are a techniques for mapping data blocks to storage blocks. A portion of data is received, and the portion of data is segmented into one or more data blocks. The one or more data blocks are mapped to one or more storage blocks of one or more storage devices, wherein the one or more data blocks are mapped to wrap around the storage devices after each of the storage devices has been utilized.
Claims15
A method for mapping data blocks to storage blocks, comprising:
- receiving a portion of data;
- segmenting the portion of data into one or more data blocks;
- mapping the one or more data blocks to one or more storage blocks of one or more storage devices, wherein the one or more data blocks are mapped to wrap around the storage devices after each of the storage devices has been utilized by, for each of the one or more storage blocks,
- comparing (i+j) to (N−1) for a storage block B[i,j], wherein i is a number representing a particular storage device and j is a number representing a stripe, wherein a stripe includes one or more storage blocks from each of the one or more storage devices, and wherein N represents a total number of storage devices;
- in response to determining that (i+j)<(N−1) for the storage block B[i,j], storing a data block D[N*i+j] to the storage block B[i,j];
- and
- in response to determining that (i+j)>(N−1) for the storage block B[i,j], storing a data block D[N*i−j] to the storage block B[i,j];
- and
- in response to receiving a sequential access request spanning N consecutive data blocks, using N storage devices to service the request.
An article of manufacture for mapping data blocks to storage blocks, wherein the article of manufacture comprises a computer readable storage medium storing instructions executed by a processor, and wherein the article of manufacture is operable to:
- receive a portion of data;
- segment the portion of data into one or more data blocks;
- map the one or more data blocks to one or more storage blocks of one or more storage devices, wherein the one or more data blocks are mapped to wrap around the storage devices after each of the storage devices has been utilized, by, for each of the one or more storage blocks,
- comparing (i+j) to (N−1) for a storage block B[i,j], wherein i is a number representing a particular storage device and j is a number representing a stripe, wherein a stripe includes one or more storage blocks from each of the one or more storage devices, and wherein N represents a total number of storage devices;
- in response to determining that (i+j)<(N−1) for the storage block B[i,j], storing a data block D[N*i+j] to the storage block B[i,j];
- and
- in response to determining that (i+j)>(N−1) for the storage block B[i,j], storing a data block D[N*(i+1)+j] to the storage block B[i,j];
- and
- in response to receiving a sequential access request spanning N consecutive data blocks, use N storage devices to service the request.
A system for mapping data blocks to storage blocks, comprising:
- circuitry at an Input/Output processor operable to:
- receive a portion of data;
- segment the portion of data into one or more data blocks;
- map the one or more data blocks to one or more storage blocks of one or more storage devices, wherein the one or more data blocks are mapped to wrap around the storage devices after each of the storage devices has been utilized, by, for each of the one or more storage blocks,
- comparing (i+j) to (N−1) for a storage block B[i,j], wherein i is a number representing a particular storage device and j is a number representing a stripe, wherein a stripe includes one or more storage blocks from each of the one or more storage devices, and wherein N represents a total number of storage devices;
- in response to determining that (i+j)<(N−1) for the storage block B[i,j], storing a data block D[N*(i+j] to the storage block B[i,j];
- and
- in response to determining that (i+j)>(N−1) for the storage block B[i,j], storing a data block D[N*(i−1)+j] to the storage block B[i,j];
- and
- in response to receiving a sequential access request spanning N consecutive data blocks, use N storage devices to service the request.
Dependencies are inferred from the claim text.