Lock-free processing of stateless protocols over rdma
US-2016378712-A1 · Dec 29, 2016 · US
US2017242594A1 · US · A1
| Field | Value |
|---|---|
| Publication number | US-2017242594-A1 |
| Application number | US-201615134361-A |
| Country | US |
| Kind code | A1 |
| Filing date | Apr 20, 2016 |
| Priority date | Feb 23, 2016 |
| Publication date | Aug 24, 2017 |
| Grant date | — |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A system and method for enabling an application ( 125, 305, 310, 315 ) and a storage device ( 120 ) to be more aware of each other may include a computer ( 105 ), a processor ( 110 ), and a memory ( 115 ) as well as the storage device ( 120 ). An application ( 125, 305, 310, 315 ) stored in the memory may communicate with a user space device driver ( 130 ). The user space device driver ( 130 ) may include a Mode Configure Module ( 320 ) to receive an application profile ( 405, 430, 435 ) from the application ( 125, 305, 310, 315 ) and an Application Aware Module ( 325 ) to receive I/O commands ( 555 ) from the application ( 125, 305, 310, 315 ) and place them in command queues ( 510, 515, 520, 525, 535, 540, 545, 550 ) according to the application profile ( 405, 430 , and 435 ). The I/O commands ( 555 ) may then be sent to the storage device ( 120 ).
Opening claim text (preview).
1 . A system, comprising: a computer; a processor; a memory; a storage device; an application stored in the memory, the application capable of being executed by the processor; and a device driver, including: a Mode Configure Module to receive an application profile; and an Application Aware Module to receive an input/output (I/O) command from the application and to assign the I/O command to one of a plurality of command queues using the application profile, wherein the storage device is operative to receive the I/O command from the one of the plurality of command queues. 2 . A system according to claim 1 , wherein: the application profile includes a monitoring parameter and a switching parameter; and the Application Aware Module is operative to assign the I/O command to the one of the plurality of command queues based on the switching parameter and a condition of the storage device specified by the monitoring parameter. wherein the monitoring parameter identifies the condition of the storage device of interest to the application, and wherein the switching parameter advises the Application Aware Module as to which of the plurality of command queues to select based on the condition of the storage device. 3 . A system according to claim 2 , wherein: the monitoring parameter is drawn from a set including latency, I/O instructions Per Second (IOPS), and a priority; and the switching parameter includes a threshold for the monitoring parameter. 4 . A system according to claim 3 , wherein the Application Aware Module is operative to assign the I/O command to the one of a plurality of command queues using the application profile based on whether at least one condition of the storage device exceeds the threshold for the monitoring parameter. 5 . A system according to claim 1 , wherein the plurality of command queues includes at least one command polling queue and at least one command interrupt queue. 6 . A system according to claim 5 , wherein the Application Aware Module is operative to assign the I/O command to one of a command polling queue and a command interrupt queue of equal priority using the application profile. 7 . A system according to claim 1 , wherein the device driver further includes a Dynamic Feedback Module to provide feedback to the application regarding the monitoring parameter. 8 . A system according to claim 7 , wherein the feedback includes a suggestion to the application regarding a change to at least one of the monitoring parameter and the switching parameter to improve performance. 9 . A system according to claim 7 , wherein the feedback further includes feedback to the application about the one of the plurality of command queues. 10 . A system according to claim 1 , wherein the device driver includes a scheduler to schedule delivery of the I/O command to the storage device. 11 . A method, comprising: receiving an application profile from an application at a storage device, the application profile including a monitoring parameter and a switching parameter; storing the application profile in the storage device; receiving an input/output (I/O) command at the storage device, the I/O command including the application profile; determining at least one condition of the storage device around the time the storage device receives the I/O command, the at least one condition based on the monitoring parameter; and scheduling the I/O command in one of a plurality of command queues responsive to the at least one condition of the storage device and the switching parameter. 12 . A method according to claim 11 , wherein scheduling the I/O command in one of a plurality of command queues includes scheduling the I/O command in one of a command polling queue and a command interrupt queue responsive to the at least one condition of the storage device and the switching parameter. 13 . A method according to claim 11 , further comprising providing feedback to the application, regarding the monitoring parameter. 14 . A method according to claim 13 , wherein providing feedback to the application regarding the monitoring parameter includes suggesting to the application a change to at least one of the monitoring parameter and the switching parameter to improve performance. 15 . A method according to claim 13 , wherein providing feedback to the application regarding the monitoring parameter includes providing feedback to the application about the one of the plurality of command queues. 16 . An article, comprising a tangible storage medium, said tangible storage medium having stored thereon non-transitory instructions that, when executed by a machine, result in: receiving an application profile from an application at a storage device, the application profile including a monitoring parameter and a switching parameter; storing the application profile in the storage device; receiving an input/output command at the storage device, the I/O command including the application profile; determining at least one condition of the storage device around the time the storage device receives the I/O command based on the monitoring parameter; and scheduling the I/O command in one of a plurality of command queues responsive to the at least one condition of the storage device and the switching parameter. 17 . An article according to claim 16 , wherein scheduling the I/O command in one of a plurality of command queues includes scheduling the I/O command in one of a command polling queue and a command interrupt queue responsive to the at least one condition of the storage device and the switching parameter. 18 . An article according to claim 16 , said tangible storage medium having stored thereon further non-transitory instructions that, when executed by the machine, result in providing feedback to the application regarding the monitoring parameter. 19 . An article according to claim 18 , wherein providing feedback to the application regarding the monitoring parameter includes suggesting to the application a change to at least one of the monitoring parameter and the switching parameter to improve performance. 20 . An article according to claim 18 , wherein providing feedback to the application regarding the monitoring parameter includes providing feedback to the application about the one of the plurality of command queues. 21 . An article according to claim 16 , wherein: the monitoring parameter identifies the at least one condition of the storage device of interest to the application; and the switching parameter advises the Application Aware Module as to which of the plurality of command queues to select based on the at least one condition of the storage device. 22 . A method according to claim 11 , wherein: the monitoring parameter identifies the at least one condition of the storage device of interest to the application; and the switching parameter advises the Application Aware Module as to which of the plurality of command queues to select based on the at least one condition of the storage device.
Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title
with priority control · CPC title
using successive scanning, e.g. polling (G06F13/24 takes precedence) · CPC title
Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · CPC title
in relation to response time · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.