WO2016122644A1 - Transmission over scsi protocol - Google Patents
Transmission over scsi protocol Download PDFInfo
- Publication number
- WO2016122644A1 WO2016122644A1 PCT/US2015/013923 US2015013923W WO2016122644A1 WO 2016122644 A1 WO2016122644 A1 WO 2016122644A1 US 2015013923 W US2015013923 W US 2015013923W WO 2016122644 A1 WO2016122644 A1 WO 2016122644A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- buffer size
- scsi
- trend
- dynamically
- buffer
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
Definitions
- SCSI Small Computer System Interface
- An initiator is an endpoint device that sends an SCSI command
- a target is an endpoint device that receives SCSI commands from initiator(s).
- FIG. 1 is a block diagram of example computing devices for providing fast transmission over SCSI protocol
- FIG. 2 is a flowchart of an example method for execution by computing devices for providing fast transmission over SCSI protocol
- FIG. 3 is a flowchart of an example method for execution by a target device for dynamically managing a buffer size of a buffer hash
- FIG. 4 is a block diagram showing an example non-transitory, computer-readable medium that stores instructions for providing fast transmission over SCSI protocol.
- the SCSI protocol is used to communicate between computing and peripheral devices.
- Techniques can be used to reduce the time spent in the SCSI protocol layer when data is sent over a SCSI protocol by fragmenting the data in smaller chunks.
- the smaller chunks may cause performance issues because a receiver has to issue a number of pre-reads to obtain a large set of data.
- a larger pre-read buffer space is wasted. Examples described herein provides a mechanism to minimize the performance impact of fragmented data by dynamically modifying the buffer size based on data trends (i.e., the general size of the data set).
- SCSI messages from an initiator device are received, where the initiator device sends the SCSI messages using a pre-read buffer.
- a data trend is identified based on the SCSI messages.
- a buffer size of the pre-read buffer can then be modified based on the data trend, where further SCSI messages from the initiator device are fragmented according to the modified buffer size.
- FIG. 1 is a block diagram of example computing devices 100A, 100N for providing fast transmission over SCSI protocol.
- the example computing devices 100A, 100N may be server computing devices such as blade servers, rack servers, notebook computers, desktop computers, or any other electronic device suitable for providing fast transmission over SCSI protocol.
- each computing device 100A, 100N includes a transport layer, 102A, 102N, an SCSI protocol layer 1 1 OA, 1 1 ON, and an interface 120A, 120N.
- computing device A 100A corresponds to a target endpoint device (i.e., receiver), and computing device N 100N corresponds to an initiator endpoint device (i.e., sender).
- Computing device N 100N also includes a pre-read buffer 108, which is used to fragment data sent by computing device N 100N.
- transport layer A 102A can read fragments of data from the pre-read buffer 108 according to a buffer size requirement that is configured by computing device A 100A as described below.
- Pre-read buffer 108 may be implemented as a link list of fragmented data.
- Transport layers 102A, 102N act to reduce latency in data transmissions over the SCSI protocol by issuing pre-allocated SCSI read commands between computing devices 100A, 100N and then use responses to the pre-allocated SCSI read commands to send data between computing devices 100A, 100N.
- transport layer N 102N of computing device N 100N i.e., sender
- transport layer 102N could transmit the data via a SCSI response to a pre-allocated dummy SCSI read command from computing device A 100A (i.e., receiver).
- Data trend identifying instructions 104 of computing device A 100A identifies trends in data received from computing device N 100N. Specifically, data trend identifying instructions 104 examines the nature of the received fragments to determine if the underlying data is tending to be large, small, or variable.
- a large send trend can be identified if, for example, computing device N 100N is sending large datasets that are highly fragmented by the current buffer size requirement.
- a small send trend can be identified if computing device N 100N is sending small datasets that fail to fill the fragments in current buffer size requirement.
- a variable send trend can be identified if computing device N 100N is sending both large and small datasets.
- Buffer size modifying instructions 106 of computing device A 100A modifies the buffer size requirement based on the identified data trend. For example if a large send trend is identified, the buffer size requirement can be increased, or if a small send trend is identified, the buffer size requirement can be decreased. In another example if a variable send trend is identified, the buffer size requirement can be set to alternate between a small and large fragment size. After the buffer size requirement is modified, computing device N 100N may use the modified buffer size requirement to, for example, arrange the pre-read buffer 108 into a hash.
- SCSI protocol layers 1 1 OA, 1 10N processes the SCSI commands to facilitate communication via the interfaces 120A, 120N.
- SCSI protocol layers 1 1 OA, 1 1 ON may handle allocating memory, sending SCSI command notifications, etc. on behalf of the transport layers 102A, 102N.
- SCSI protocol layers 1 1 OA, 1 1 ON abstracts the implementation of the SCSI protocol from the other layers of computing device 100A, 100N.
- Interfaces 120A, 120N may each include a number of electronic components for communicating with computing devices.
- Interfaces 120A, 120N may be a Fibre Channel, an Ethernet interface, a Universal Serial Bus (USB) interface, an IEEE 1394 (Firewire) interface, an external Serial Advanced Technology Attachment (eSATA) interface, or any other physical connection interface suitable for communication with the server devices and neighboring wireless devices.
- interfaces 120A, 120N may be a wireless interface such as a wireless local area network (WLAN) interface or a near-field communication (NFC) interface. In operation, interfaces 120A, 120N may be used to send and receive data to and from other computing devices.
- WLAN wireless local area network
- NFC near-field communication
- Each of the modules described above may be implemented to be executed on a processor with one or more central processing units (CPUs), microprocessors, and/or other hardware devices suitable for retrieval and execution of instructions stored in a machine-readable storage medium.
- the processor may include one or more electronic circuits comprising a number of electronic components for performing the functionality of one or more of the instructions.
- the machine-readable storage medium may be any electronic, magnetic, optical, or other physical storage device that stores executable instructions.
- the machine-readable storage medium may be, for example, Random Access Memory (RAM), an Electrically-Erasable Programmable Readonly Memory (EEPROM), a storage drive, an optical disc, and the like.
- FIG. 2 is a flowchart of an example method 200 for execution by computing devices 100A, 100N for providing fast transmission over SCSI protocol. Although execution of method 200 is described below with reference to computing devices 100A, 100N of FIG. 1 , other suitable devices for execution of method 200 may be used. Method 200 may be implemented in the form of executable instructions stored on a machine-readable storage medium, such as computer readable medium 400 of FIG. 4, and/or in the form of electronic circuitry.
- Method 200 may start in block 205 and continue to block 210, where computing device A 100A (i.e., receiver) receives SCSI messages from a sender, computing device N 100N (i.e., sender).
- the SCSI messages may include data that has been fragmented in a pre-read buffer hash on the sender-side.
- a transport layer of computing device A 100A i.e., receiver
- the transport layer of computing device A 100A dynamically modifies the buffer size requirement according to the identified data trend.
- further SCSI messages are received that have been sent by computing device N 100N (i.e., sender) using the modified buffer size requirement.
- the buffer size requirement can be updated to best suit the current data trend of SCSI messages. For example, sending of large datasets can be optimized to improve performance by increasing the buffer size requirement. In another example, sending of small datasets can be optimized to improve memory efficiency by decreasing the buffer size requirement.
- Method 200 may subsequently proceed to block 230, where method 200 may stop.
- FIG. 3 is a flowchart of an example method 300 for execution by a receiver, computing device A 100A, for dynamically managing a buffer size of a buffer hash.
- execution of method 300 is described below with reference to computing device A 100A (i.e., receiver), other suitable devices for execution of method 300 may be used.
- Method 300 may be implemented in the form of executable instructions stored on a machine-readable storage medium, such as computer readable medium 400 of FIG. 4, and/or in the form of electronic circuitry.
- Method 300 may start in block 305 and continue to block 310, where computing device A 100A (i.e., receiver) receives SCSI messages from a sender, computing device N 100N, which uses a buffer size requirement to fragment the SCSI messages.
- computing device A 100A i.e., receiver
- receives SCSI messages from a sender computing device N 100N, which uses a buffer size requirement to fragment the SCSI messages.
- a transport layer of computing device A 100A i.e., receiver
- processes the SCSI messages As the data is processed, the transport layer of computing device A 100A (i.e., receiver) identifies a data trend based on how the SCSI messages are fragmented in block 320.
- computing device A 100A determines if the data trend has changed. If the data trend has not changed, method 300 returns to block 310 to receive further SCSI messages that have been fragmented using the current buffer size. If the data trend has changed, the transport layer of computing device A 100A (i.e., receiver) dynamically modifies the buffer size according to the changed data trend. Method 300 may then return to block 310 to receive further SCSI messages that have been fragmented using the modified buffer size.
- FIG. 4 is an example block diagram showing a non-transitory, computer-readable medium that stores code for operating a computing device to provide fast transmission over SCSI protocol.
- the non-transitory, computer- readable medium is generally referred to by the reference number 400 and may be included in expander device described in relation to FIG. 1 .
- the non- transitory, computer-readable medium 400 may correspond to any typical storage device that stores computer-implemented instructions, such as programming code or the like.
- the non-transitory, computer- readable medium 400 may include one or more of a non-volatile memory, a volatile memory, and/or one or more storage devices.
- non-volatile memory examples include, but are not limited to, electrically erasable programmable read only memory (EEPROM) and read only memory (ROM).
- volatile memory examples include, but are not limited to, static random access memory (SRAM), and dynamic random access memory (DRAM).
- SRAM static random access memory
- DRAM dynamic random access memory
- storage devices include, but are not limited to, hard disk drives, compact disc drives, digital versatile disc drives, optical drives, solid state drives and flash memory devices.
- a processor 402 generally retrieves and executes the instructions stored in the non-transitory, computer-readable medium 400 to operate the storage device in accordance with an example.
- the tangible, machine-readable medium 400 can be accessed by the processor 402 over a bus 404.
- a transport layer instructions 406 of the non-transitory, computer- readable medium 400 may include functionality to implement computing devices as described herein.
- the software components can be stored in any order or configuration.
- the non-transitory, computer-readable medium 400 is a hard drive
- the software components can be stored in non-contiguous, or even overlapping, sectors.
- the foregoing disclosure describes a number of examples for providing fast transmission over SCSI protocol.
- the examples disclosed herein optimize transmissions over SCSI protocol by dynamically modifying a buffer size requirement of an initiator device based on data trends.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
Abstract
Examples relate to providing fast transmission over small computer system interface (SCSI) protocol. In some examples, SCSI messages from a sender device are received, where the sender device sends the SCSI messages using a pre-read buffer. At this stage, a data trend is identified based on the SCSI messages. A buffer size of the pre-read buffer can then be modified based on the data trend, where further SCSI messages from the sender device are fragmented according to the modified buffer size.
Description
TRANSMISSION OVER SCSI PROTOCOL
BACKGROUND
[0001 ] The Small Computer System Interface (SCSI) provides a set of standards for connecting and transfer between computing and peripheral devices. SCSI is often used for hard drives and tape drives. Specifically, SCSI defines commends that allow communications to occur between initiators and targets. An initiator is an endpoint device that sends an SCSI command, and a target is an endpoint device that receives SCSI commands from initiator(s).
BRIEF DESCRIPTION OF THE DRAWINGS
[0002] The following detailed description references the drawings, wherein:
[0003] FIG. 1 is a block diagram of example computing devices for providing fast transmission over SCSI protocol;
[0004] FIG. 2 is a flowchart of an example method for execution by computing devices for providing fast transmission over SCSI protocol;
[0005] FIG. 3 is a flowchart of an example method for execution by a target device for dynamically managing a buffer size of a buffer hash; and
[0006] FIG. 4 is a block diagram showing an example non-transitory, computer-readable medium that stores instructions for providing fast transmission over SCSI protocol.
DETAILED DESCRIPTION
[0007] As discussed above, the SCSI protocol is used to communicate between computing and peripheral devices. Techniques can be used to reduce the time spent in the SCSI protocol layer when data is sent over a SCSI protocol by fragmenting the data in smaller chunks. However, the smaller chunks may cause performance issues because a receiver has to issue a number of pre-reads to obtain a large set of data. In the case of small sized data, a larger pre-read buffer space is wasted. Examples described herein provides a mechanism to
minimize the performance impact of fragmented data by dynamically modifying the buffer size based on data trends (i.e., the general size of the data set).
[0008] In some examples, SCSI messages from an initiator device are received, where the initiator device sends the SCSI messages using a pre-read buffer. At this stage, a data trend is identified based on the SCSI messages. A buffer size of the pre-read buffer can then be modified based on the data trend, where further SCSI messages from the initiator device are fragmented according to the modified buffer size.
[0009] Referring now to the drawings, FIG. 1 is a block diagram of example computing devices 100A, 100N for providing fast transmission over SCSI protocol. The example computing devices 100A, 100N may be server computing devices such as blade servers, rack servers, notebook computers, desktop computers, or any other electronic device suitable for providing fast transmission over SCSI protocol. In the example of FIG. 1 , each computing device 100A, 100N includes a transport layer, 102A, 102N, an SCSI protocol layer 1 1 OA, 1 1 ON, and an interface 120A, 120N.
[0010] For the purposes of this example, computing device A 100A corresponds to a target endpoint device (i.e., receiver), and computing device N 100N corresponds to an initiator endpoint device (i.e., sender). Computing device N 100N also includes a pre-read buffer 108, which is used to fragment data sent by computing device N 100N. Specifically, transport layer A 102A can read fragments of data from the pre-read buffer 108 according to a buffer size requirement that is configured by computing device A 100A as described below. Pre-read buffer 108 may be implemented as a link list of fragmented data.
[001 1 ] Transport layers 102A, 102N act to reduce latency in data transmissions over the SCSI protocol by issuing pre-allocated SCSI read commands between computing devices 100A, 100N and then use responses to the pre-allocated SCSI read commands to send data between computing devices 100A, 100N. For example, transport layer N 102N of computing device N 100N (i.e., sender) may issue a send command to transport layer A 102A in computing device A 100A (i.e., receiver), and transport layer 102N could transmit the data via
a SCSI response to a pre-allocated dummy SCSI read command from computing device A 100A (i.e., receiver).
[0012] Data trend identifying instructions 104 of computing device A 100A (i.e., receiver) identifies trends in data received from computing device N 100N. Specifically, data trend identifying instructions 104 examines the nature of the received fragments to determine if the underlying data is tending to be large, small, or variable. A large send trend can be identified if, for example, computing device N 100N is sending large datasets that are highly fragmented by the current buffer size requirement. A small send trend can be identified if computing device N 100N is sending small datasets that fail to fill the fragments in current buffer size requirement. A variable send trend can be identified if computing device N 100N is sending both large and small datasets.
[0013] Buffer size modifying instructions 106 of computing device A 100A (i.e., receiver) modifies the buffer size requirement based on the identified data trend. For example if a large send trend is identified, the buffer size requirement can be increased, or if a small send trend is identified, the buffer size requirement can be decreased. In another example if a variable send trend is identified, the buffer size requirement can be set to alternate between a small and large fragment size. After the buffer size requirement is modified, computing device N 100N may use the modified buffer size requirement to, for example, arrange the pre-read buffer 108 into a hash.
[0014] SCSI protocol layers 1 1 OA, 1 10N processes the SCSI commands to facilitate communication via the interfaces 120A, 120N. For example, SCSI protocol layers 1 1 OA, 1 1 ON may handle allocating memory, sending SCSI command notifications, etc. on behalf of the transport layers 102A, 102N. SCSI protocol layers 1 1 OA, 1 1 ON abstracts the implementation of the SCSI protocol from the other layers of computing device 100A, 100N.
[0015] Interfaces 120A, 120N may each include a number of electronic components for communicating with computing devices. For example, Interfaces 120A, 120N may be a Fibre Channel, an Ethernet interface, a Universal Serial Bus (USB) interface, an IEEE 1394 (Firewire) interface, an external Serial Advanced
Technology Attachment (eSATA) interface, or any other physical connection interface suitable for communication with the server devices and neighboring wireless devices. In another example, interfaces 120A, 120N may be a wireless interface such as a wireless local area network (WLAN) interface or a near-field communication (NFC) interface. In operation, interfaces 120A, 120N may be used to send and receive data to and from other computing devices.
[0016] Each of the modules described above may be implemented to be executed on a processor with one or more central processing units (CPUs), microprocessors, and/or other hardware devices suitable for retrieval and execution of instructions stored in a machine-readable storage medium. As an alternative or in addition to retrieving and executing instructions, the processor may include one or more electronic circuits comprising a number of electronic components for performing the functionality of one or more of the instructions.
[0017] The machine-readable storage medium may be any electronic, magnetic, optical, or other physical storage device that stores executable instructions. Thus, the machine-readable storage medium may be, for example, Random Access Memory (RAM), an Electrically-Erasable Programmable Readonly Memory (EEPROM), a storage drive, an optical disc, and the like.
[0018] FIG. 2 is a flowchart of an example method 200 for execution by computing devices 100A, 100N for providing fast transmission over SCSI protocol. Although execution of method 200 is described below with reference to computing devices 100A, 100N of FIG. 1 , other suitable devices for execution of method 200 may be used. Method 200 may be implemented in the form of executable instructions stored on a machine-readable storage medium, such as computer readable medium 400 of FIG. 4, and/or in the form of electronic circuitry.
[0019] Method 200 may start in block 205 and continue to block 210, where computing device A 100A (i.e., receiver) receives SCSI messages from a sender, computing device N 100N (i.e., sender). The SCSI messages may include data that has been fragmented in a pre-read buffer hash on the sender-side. In block 215, a transport layer of computing device A 100A (i.e., receiver) identifies a data trend based on the SCSI messages. Specifically, the fragmentation of data or lack
thereof in the SCSI messages can be used to determine whether there is a small, large, or variable send trend.
[0020] In block 220, the transport layer of computing device A 100A (i.e., receiver) dynamically modifies the buffer size requirement according to the identified data trend. In block 225, further SCSI messages are received that have been sent by computing device N 100N (i.e., sender) using the modified buffer size requirement. In this manner, the buffer size requirement can be updated to best suit the current data trend of SCSI messages. For example, sending of large datasets can be optimized to improve performance by increasing the buffer size requirement. In another example, sending of small datasets can be optimized to improve memory efficiency by decreasing the buffer size requirement. Method 200 may subsequently proceed to block 230, where method 200 may stop.
[0021 ] FIG. 3 is a flowchart of an example method 300 for execution by a receiver, computing device A 100A, for dynamically managing a buffer size of a buffer hash. Although execution of method 300 is described below with reference to computing device A 100A (i.e., receiver), other suitable devices for execution of method 300 may be used. Method 300 may be implemented in the form of executable instructions stored on a machine-readable storage medium, such as computer readable medium 400 of FIG. 4, and/or in the form of electronic circuitry.
[0022] Method 300 may start in block 305 and continue to block 310, where computing device A 100A (i.e., receiver) receives SCSI messages from a sender, computing device N 100N, which uses a buffer size requirement to fragment the SCSI messages. In block 315, a transport layer of computing device A 100A (i.e., receiver) processes the SCSI messages. As the data is processed, the transport layer of computing device A 100A (i.e., receiver) identifies a data trend based on how the SCSI messages are fragmented in block 320.
[0023] In block 325, computing device A 100A (i.e., receiver) determines if the data trend has changed. If the data trend has not changed, method 300 returns to block 310 to receive further SCSI messages that have been fragmented using the current buffer size. If the data trend has changed, the transport layer of computing device A 100A (i.e., receiver) dynamically modifies the buffer size according to the
changed data trend. Method 300 may then return to block 310 to receive further SCSI messages that have been fragmented using the modified buffer size.
[0024] FIG. 4 is an example block diagram showing a non-transitory, computer-readable medium that stores code for operating a computing device to provide fast transmission over SCSI protocol. The non-transitory, computer- readable medium is generally referred to by the reference number 400 and may be included in expander device described in relation to FIG. 1 . The non- transitory, computer-readable medium 400 may correspond to any typical storage device that stores computer-implemented instructions, such as programming code or the like. For example, the non-transitory, computer- readable medium 400 may include one or more of a non-volatile memory, a volatile memory, and/or one or more storage devices. Examples of non-volatile memory include, but are not limited to, electrically erasable programmable read only memory (EEPROM) and read only memory (ROM). Examples of volatile memory include, but are not limited to, static random access memory (SRAM), and dynamic random access memory (DRAM). Examples of storage devices include, but are not limited to, hard disk drives, compact disc drives, digital versatile disc drives, optical drives, solid state drives and flash memory devices.
[0025] A processor 402 generally retrieves and executes the instructions stored in the non-transitory, computer-readable medium 400 to operate the storage device in accordance with an example. In an example, the tangible, machine-readable medium 400 can be accessed by the processor 402 over a bus 404. A transport layer instructions 406 of the non-transitory, computer- readable medium 400 may include functionality to implement computing devices as described herein.
[0026] Although shown as contiguous blocks, the software components can be stored in any order or configuration. For example, if the non-transitory, computer-readable medium 400 is a hard drive, the software components can be stored in non-contiguous, or even overlapping, sectors.
[0027] The foregoing disclosure describes a number of examples for providing fast transmission over SCSI protocol. In this manner, the examples disclosed
herein optimize transmissions over SCSI protocol by dynamically modifying a buffer size requirement of an initiator device based on data trends.
Claims
1 . A computing device for transmission over small computer system interface (SCSI) protocol, comprising:
an SCSI protocol layer to process a plurality of SCSI messages for a plurality of SCSI devices;
a transport layer to use a buffer size to fragment data in a pre-read buffer for the plurality of SCSI commands, the transport layer to:
after receiving the plurality of SCSI messages, identify a data trend based on the plurality of SCSI messages; and
dynamically modify the buffer size of the pre-read buffer based on the data trend.
2. The computing device of claim 1 , wherein the data trend is a large send trend, and wherein the buffer size is dynamically increased.
3. The computing device of claim 1 , wherein the data trend is a small send trend, and wherein the buffer size is dynamically decreased.
4. The computing device of claim 1 , wherein the data trend is a variable send trend, and wherein the buffer size is dynamically alternated between a default buffer size and a larger buffer size.
5. The computing device of claim 1 , wherein after the buffer size is dynamically modified, the pre-read buffer is arranged into a hash based on the buffer size by a sender of the plurality of SCSI messages.
6. A method for transmission over small computer system interface (SCSI) protocol, comprising:
receiving a plurality of SCSI messages from a sender device, wherein the sender device sends the plurality of SCSI messages using a pre-read buffer;
identifying, by a receiver device, a data trend based on the plurality of SCSI messages; and
dynamically modifying, by the receiver device, a buffer size of the pre- read buffer based on the data trend, wherein further SCSI messages from the sender device are fragmented according to the modified buffer size.
7. The method of claim 6, wherein the data trend is a large send trend, and wherein the buffer size is dynamically increased.
8. The method of claim 6, wherein the data trend is a small send trend, and wherein the buffer size is dynamically decreased.
9. The method of claim 6, wherein the data trend is a variable send trend, and wherein the buffer size is dynamically alternated between a default buffer size and a larger buffer size.
10. The method of claim 6, wherein after the buffer size is dynamically modified, the pre-read buffer is arranged into a hash based on the buffer size by the sender device.
1 1 . A non-transitory machine-readable storage medium encoded with instructions executable by a processor for transmission over small computer system interface (SCSI) protocol, the machine-readable storage medium comprising instructions to:
receive a plurality of SCSI messages from a sender device, wherein the sender device sends the plurality of SCSI messages using a pre-read buffer; identify, by a receiver device, a data trend based on the plurality of SCSI messages; and
dynamically modify, by the receiver device, a buffer size of the pre-read buffer based on the data trend, wherein further SCSI messages from the sender device are fragmented according to the modified buffer size.
12. The non-transitory machine-readable storage medium of claim 1 1 , wherein the data trend is a large send trend, and wherein the buffer size is dynamically increased.
13. The non-transitory machine-readable storage medium of claim 1 1 , wherein the data trend is a small send trend, and wherein the buffer size is dynamically decreased.
14. The non-transitory machine-readable storage medium of claim 1 1 , wherein the data trend is a variable send trend, and wherein the buffer size is dynamically alternated between a default buffer size and a larger buffer size.
15. The non-transitory machine-readable storage medium of claim 1 1 , wherein after the buffer size is dynamically modified, the pre-read buffer is arranged into a hash based on the buffer size by the sender device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2015/013923 WO2016122644A1 (en) | 2015-01-30 | 2015-01-30 | Transmission over scsi protocol |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2015/013923 WO2016122644A1 (en) | 2015-01-30 | 2015-01-30 | Transmission over scsi protocol |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2016122644A1 true WO2016122644A1 (en) | 2016-08-04 |
Family
ID=56544060
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2015/013923 WO2016122644A1 (en) | 2015-01-30 | 2015-01-30 | Transmission over scsi protocol |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2016122644A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110268692A (en) * | 2018-01-19 | 2019-09-20 | 深圳市大疆创新科技有限公司 | A kind of data processing method, device, controller and movable fixture |
US10747729B2 (en) | 2017-09-01 | 2020-08-18 | Microsoft Technology Licensing, Llc | Device specific chunked hash size tuning |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6769037B1 (en) * | 2000-12-20 | 2004-07-27 | Adaptec, Inc. | Method and system for flow control during the data out phase of the packetized SCSI protocol |
US20060095608A1 (en) * | 2004-10-29 | 2006-05-04 | Pak-Lung Seto | Buffer utilization in a frame based communication system |
US20090304016A1 (en) * | 2004-09-01 | 2009-12-10 | Qlogic Corporation | Method and system for efficiently using buffer space |
EP2629446A1 (en) * | 2012-02-16 | 2013-08-21 | Broadcom Corporation | Dynamic Buffer Management in High-Throughput Wireless Systems |
US8533374B1 (en) * | 2010-11-11 | 2013-09-10 | Symantec Corporation | Techniques for adaptive data transfer |
-
2015
- 2015-01-30 WO PCT/US2015/013923 patent/WO2016122644A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6769037B1 (en) * | 2000-12-20 | 2004-07-27 | Adaptec, Inc. | Method and system for flow control during the data out phase of the packetized SCSI protocol |
US20090304016A1 (en) * | 2004-09-01 | 2009-12-10 | Qlogic Corporation | Method and system for efficiently using buffer space |
US20060095608A1 (en) * | 2004-10-29 | 2006-05-04 | Pak-Lung Seto | Buffer utilization in a frame based communication system |
US8533374B1 (en) * | 2010-11-11 | 2013-09-10 | Symantec Corporation | Techniques for adaptive data transfer |
EP2629446A1 (en) * | 2012-02-16 | 2013-08-21 | Broadcom Corporation | Dynamic Buffer Management in High-Throughput Wireless Systems |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10747729B2 (en) | 2017-09-01 | 2020-08-18 | Microsoft Technology Licensing, Llc | Device specific chunked hash size tuning |
CN110268692A (en) * | 2018-01-19 | 2019-09-20 | 深圳市大疆创新科技有限公司 | A kind of data processing method, device, controller and movable fixture |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105320640B (en) | Input/output interceptor and input/output intercepting method using the same | |
US11138143B2 (en) | Techniques for command validation for access to a storage device by a remote client | |
US11561730B1 (en) | Selecting paths between a host and a storage system | |
US20180011913A1 (en) | Data replication management | |
US10216592B2 (en) | Storage system and a method used by the storage system | |
EP3198458B1 (en) | Technologies for accelerating compute intensive operations using solid state drives | |
CN111095223A (en) | Method and system for implementing active persistent memory via memory bus | |
KR102537119B1 (en) | Logical-to-physical map synchronization in a memory device | |
US10715622B2 (en) | Systems and methods for accelerating object stores with distributed caching | |
KR102437780B1 (en) | System for prediting solid state drive memory cache occupancy and method thereof | |
US8984225B2 (en) | Method to improve the performance of a read ahead cache process in a storage array | |
EP3660686B1 (en) | Method and device for transmitting data processing request | |
KR20180059342A (en) | System and method for improving storage device i/o performance | |
TWI737088B (en) | Host-based flash memory maintenance techniques | |
US20200379980A1 (en) | Blockchain-based computing system and method for managing transaction thereof | |
US20190272099A1 (en) | Data Operating Method, Device, and System | |
US10037440B1 (en) | Generating a unique encryption key | |
US9723071B2 (en) | High bandwidth peer-to-peer switched key-value caching | |
US9798334B1 (en) | Method and system for improving flash storage performance for various types of workloads by modulating operating temperature | |
US20160364154A1 (en) | Apparatus, system, and method for searching compressed data | |
WO2016122644A1 (en) | Transmission over scsi protocol | |
US20130238871A1 (en) | Data processing method and apparatus, pci-e bus system, and server | |
US10168937B2 (en) | Storage space allocation | |
JP2019525349A (en) | Avoid externally managed I / O starvation in computing devices | |
US11231881B2 (en) | Raid data storage device multi-step command coordination system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 15880534 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 15880534 Country of ref document: EP Kind code of ref document: A1 |