Multistreaming in heterogeneous environments
Abstract
A storage device is disclosed. The storage device may include storage to store data, which may include a first storage of a first type and a second storage of a second type. The storage device may support a number of device streams, some of which associated with the first storage and some associated with the second storage. The storage device may also include a streaming capabilities analyzer that may inventory the streaming capabilities for the storage device. Finally, the storage device may include a transmitter to transmit the streaming capabilities of the storage device to a storage manager.
Claims
exact text as granted — not AI-modifiedWhat is claimed as the inventive concept, therefore, is all such modifications as may come within the scope and spirit of the following claims and equivalents thereto:
1 . A storage device, comprising:
storage for data, including a first storage and a second storage, the first storage of a first type and the second storage of a second type, wherein the first type is different from the second type; a number of device streams used in writing the data to the storage, a first of the number of device streams supported by the storage device associated with the first storage and a second of the number of device streams supported by the storage device associated with the second storage; a streaming capabilities analyzer to inventory streaming capabilities of the storage device; and a transmitter to transmit the streaming capabilities of the storage device to at least one storage manager.
2 . A storage device according to claim 1 , wherein the streaming capabilities are drawn from a set including the number of device streams supported by the storage device, a size of an erase block on the storage device, a description of a physical heterogeneity of the storage device, an auto-streaming capability of the storage device, an Optical Stream Write Size of the storage device, in-storage computing (ISC) supported by the storage device, Program and Erase speed parameters of the storage device, a buffer size of the storage device, throughput limitations on the device streams supported by the storage device, and firmware version of the storage device.
3 . A storage device according to claim 1 , wherein:
the storage device further comprises an update detector operative to detect when there has been an update in the streaming capabilities of the storage device; the streaming capabilities analyzer is operative to re-inventory the updated streaming capabilities of the storage device; and the transmitter is operative to transmit the updated streaming capabilities of the storage device to the at least one storage manager.
4 . A storage manager, comprising:
a receiver to receive at least one streaming capability of at least one storage device, requirements for at least one software stream, and a request from the at least one software stream; a device stream selector to select one of a number of device streams supported by the at least one storage device responsive to the requirements for the at least one software stream and the at least one streaming capability of the at least one storage device; and a transmitter to transmit the request to a first storage device of the at least one storage device, the first storage device supporting the selected one of the number of device streams.
5 . A storage manager according to claim 4 , further comprising an augmenter to augment the at least one streaming capability of the at least one storage device with storage device-independent considerations.
6 . A storage manager according to claim 4 , wherein the streaming capability are drawn from a set including the number of device streams supported by the storage device, a size of an erase block on the storage device, a description of a physical heterogeneity of the storage device, an auto-streaming capability of the storage device, an Optimal Stream Write Size of the storage device, in-storage computing (ISC) supported by the storage device, Program and Erase speed parameters of the storage device, a buffer size of the storage device, throughput limitations on the device streams supported by the storage device, and firmware version of the storage device.
7 . A storage manager according to claim 4 , wherein the device stream selector includes a mapper to generate a mapping from the at least one software stream to at least one of the number of device streams supported by the at least one storage device responsive to the at least one requirement of the at least one software stream and the at least one streaming capability of the at least one storage device.
8 . A storage manager according to claim 7 , further comprising storage for a data structure storing the mapping.
9 . A storage manager according to claim 4 , further comprising storage for a data structure storing the at least one streaming capability of the at least one storage device.
10 . A storage manager according to claim 4 , wherein the at least one streaming capability of the at least one storage device specifies that the at least one storage device includes a first storage of a first type and a second storage of a second type, wherein the first type is different from the second type.
11 . A storage manager according to claim 4 , wherein the at least one storage device includes a first storage device and a second storage device, wherein the first storage device and the second storage device support different streaming capabilities.
12 . A storage manager according to claim 11 , wherein the at least one storage device includes:
a first storage device supporting a first type of storage; and a second storage device supporting a second type of storage, the second type of storage different from the first type of storage.
13 . A storage manager according to claim 11 , wherein the different streamlining capabilities include different numbers of device streams, different erase block sizes, different storage capacities, different auto-streaming capabilities, different Optimal Stream Write Sizes, different in-storage computing capabilities, different Program and Erase speed parameters, different buffer sizes, different throughput limitations, and different firmware versions.
14 . A storage manager according to claim 4 , wherein:
the requirements for the at least one software stream include at least two requirements for the at least one software stream; the device stream selector includes a weight assignor to assign weights to the at least two requirements for the at least one software stream; and the device stream selector is operative to select the at least one of the number of device streams supported by the at least one storage device responsive to the weights and the at least one streaming capability of the at least one storage device.
15 . A method, comprising:
receiving at least two streaming capabilities of at least one storage device, the at least one storage device supporting a number of device streams; receiving a request from at least one software stream; determining at least one requirement of the at least one software stream; selecting at least one of the number of device streams supported by the at least one storage device responsive to the at least one requirement of the at least one software stream and the at least one streaming capability of the at least one storage device; and sending the request from the at least one software stream to the at least one storage device using the selected at least one of the number of device streams.
16 . A method according to claim 15 , further comprising augmenting the at least one streaming capability of the at least one storage device with storage device-independent considerations.
17 . A method according to claim 15 , wherein selecting at least one of the number of device streams supported by the at least one storage device responsive to the at least one requirement of the at least one software stream and the at least one streaming capability of the at least one storage device includes:
generating a mapping from the at least one software stream to at least one of the number of device streams supported by the at least one storage device responsive to the at least one requirement of the at least one software stream and the at least one streaming capability of the at least one storage device; and using the mapping to select the at least one of the number of device streams supported by the at least one storage device responsive to the at least one software stream.
18 . A method according to claim 17 , wherein generating a mapping from the at least one software stream to at least one of the number of device streams supported by the at least one storage device responsive to the at least one requirement of the at least one software stream and the at least one streaming capability of the at least one storage device includes:
assigning each of the number of device streams supported by the at least one storage device using the at least one streaming capability of the at least one storage device to one of at least two classes; assigning the at least one software stream to one of the at least two classes; and generating the mapping by assigning the at least one software stream to at least one of the at least one of the number of device streams supported by the at least one storage device that has a same class.
19 . A method according to claim 15 , wherein receiving at least one streaming capability of at least one storage device, the at least one storage device supporting a number of device streams and at least two different types of storage includes:
receiving at least a first streaming capability of at least a first storage device, the first storage device supporting at least a first type of storage; and receiving at least a second streaming capability of at least a second storage device, the second storage device supporting at least a second type of storage, the second type of storage different from the first type of storage.
20 . A method according to claim 15 , wherein:
determining at least one requirement of the at least one software stream includes determining at least two requirements of the at least one software stream, wherein the at least two requirements represent a subset of the at least one streaming capability of the at least one storage device; and selecting at least one of the number of device streams supported by the at least one storage device responsive to the at least one requirement of the at least one software stream and the at least one streaming capability of the at least one storage device includes:
assigning weights to the at least two requirements of the at least one software stream; and
selecting the at least one of the number of device streams supported by the at least one storage device responsive to the weights and the at least one streaming capability of the at least one storage device.Join the waitlist — get patent alerts
Track US2018321855A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.