Streaming protocol for storage devices
AssigneeSun Microsystems, Inc.
InventorsChia Y. Wu, Whay Sing Lee, Nisha D. Talagala
Life of this patent
Estimating the term…
Abstract
Various embodiments of systems and methods for implementing a streaming I/O protocol are disclosed. In some embodiments, a method may involve: receiving a packet initiating a streaming write operation, where the packet indicates that the size of the streaming write is larger than the size of the packet; initiating a write access having a size larger than the size of the packet to a storage device; receiving subsequent packets included in the streaming write operation; and writing data received in the subsequent packets to the storage device as part of the write access initiated in response to the earlier packet. In some embodiments, streaming read operations may also be supported.
Claims26
A method, comprising:
- receiving a packet initiating a streaming write operation, wherein the packet indicates that a size of the streaming write is larger than a size of the packet;
- initiating a write access having a size larger than the size of the packet to a storage device;
- receiving one or more subsequent packets included in the streaming write operation;
- writing data received in the one or more subsequent packets to the storage device as part of the write access initiated by said initiating;
- receiving a packet initiating a streaming read operation, wherein the streaming read operation indicates that a size of the streaming read operation is larger than a size of the packet initiating the streaming read operation;
- initiating a read access to the storage device having a size larger than the size of the packet initiating the streaming read operation;
- subdividing data output from the storage device in response to said initiating into a plurality of packets;
- and
- conveying the plurality of packets to an initiating device.
A method, comprising:
- receiving a packet initiating a streaming write operation, wherein the packet indicates that a size of the streaming write is larger than a size of the packet;
- initiating a write access having a size larger than the size of the packet to a storage device;
- receiving one or more subsequent packets included in the streaming write operation;
- writing data received in the one or more subsequent packets to the storage device as part of the write access initiated by said initiating;
- receiving an additional packet initiating an additional write operation to the storage device prior to completion of the write access;
- and
- inhibiting performance of the additional write operation until completion of the write access, wherein said inhibiting comprises causing the additional write operation to timeout.
A system, comprising:
- a network;
- an initiating device configured to send a packet containing size information followed by one or more additional packets on the network, wherein the size information indicates that a size of an operation requested in the packet is larger than a size of the packet;
- a storage controller coupled to receive the packet and the one or more additional packets from the network;
- and
- a storage device coupled to the storage controller, wherein the storage controller is a storage device controller, and wherein the storage device is a disk drive;
- wherein the storage controller is configured to initiate a write access to the storage device in response to receiving the packet containing the size information, wherein a size of the write access is larger than the size of the packet;
- wherein the storage controller is configured to write data included in the one or more additional packets to the storage device as part of the write access.
A system, comprising:
- a network;
- an initiating device configured to send a packet containing size information followed by one or more additional packets on the network, wherein the size information indicates that a size of an operation requested in the packet is larger than a size of the packet;
- a storage controller coupled to receive the packet and the one or more additional packets from the network;
- and
- a storage device coupled to the storage controller;
- wherein the storage controller is configured to initiate a write access to the storage device in response to receiving the packet containing the size information, wherein a size of the write access is larger than the size of the packet;
- wherein the storage controller is configured to write data included in the one or more additional packets to the storage device as part of the write access;
- wherein the initiating device is configured to send a packet containing information indicating a streaming read size on the network, and wherein the storage controller is configured to initiate a read access of the streaming read size to the storage device;
- wherein the storage controller is configured to subdivide data received in response to performance of the read access by the storage device into a plurality of packets and to send the plurality of packets to the initiating device via the network.
A system, comprising:
- a network;
- an initiating device configured to send a packet containing size information followed by one or more additional packets on the network, wherein the size information indicates that a size of an operation requested in the packet is larger than a size of the packet;
- a storage controller coupled to receive the packet and the, one or more additional packets from the network;
- and
- a storage device coupled to the storage controller, wherein the storage controller is an array controller, and wherein the storage device is a storage array;
- wherein the storage controller is configured to initiate a write access to the storage device in response to receiving the packet containing the size information, wherein a size of the write access is larger than the size of the packet;
- wherein the storage controller is configured to write data included in the one or more additional packets to the storage device as part of the write access.
A system, comprising:
- a network;
- an initiating device configured to send a packet containing size information followed by one or more additional packets on the network, wherein the size information indicates that a size of an operation requested in the packet is larger than a size of the packet, wherein the initiating device is an array controller;
- a storage controller coupled to receive the packet and the one or more additional packets from the network;
- and
- a storage device coupled to the storage controller;
- wherein the storage controller is configured to initiate a write access to the storage device in response to receiving the packet containing the size information, wherein a size of the write access is larger than the size of the packet;
- wherein the storage controller is configured to write data included in the one or more additional packets to the storage device as part of the write access.
Dependencies are inferred from the claim text.