WO2016122644A1 - Transmission over scsi protocol - Google Patents

Transmission over scsi protocol Download PDF

Info

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
Application number
PCT/US2015/013923
Other languages
French (fr)
Inventor
Rajeev Mishra
Pierre Labat
Ram Krishan Kaul
Original Assignee
Hewlett Packard Enterprise Development Lp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Enterprise Development Lp filed Critical Hewlett Packard Enterprise Development Lp
Priority to PCT/US2015/013923 priority Critical patent/WO2016122644A1/en
Publication of WO2016122644A1 publication Critical patent/WO2016122644A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information 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

CLAIMS We claim:
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.
PCT/US2015/013923 2015-01-30 2015-01-30 Transmission over scsi protocol WO2016122644A1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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