Network device for distributing computing operations by data communication in a network
US-12164880-B2 · Dec 10, 2024 · US
US9936003B1 · US · B1
| Field | Value |
|---|---|
| Publication number | US-9936003-B1 |
| Application number | US-201414473524-A |
| Country | US |
| Kind code | B1 |
| Filing date | Aug 29, 2014 |
| Priority date | Aug 29, 2014 |
| Publication date | Apr 3, 2018 |
| Grant date | Apr 3, 2018 |
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.
Methods and systems for transmitting information are provided. A threshold message size is configured to determine when an application executed by a computing system can send a latency message identifying a memory location from where a device can procure a payload for transmission to a destination. The computing system sends a latency message to the device, where the latency message includes the memory location, a transfer size and an indicator indicating if the application wants a completion status after the latency message is processed. The computing system stores connection information at a location dedicated to the application that sends the latency message. The device transmits the payload to the destination; and posts a completion status, where the device posts the completion status at a completion queue associated with the application with information that enables the application to determine whether other latency messages can be posted.
Opening claim text (preview).
What is claimed is: 1. A machine implemented method, comprising: configuring a threshold message size to determine when an application executed by a computing system can send latency messages to a device coupled to the computing system, the latency messages identifying memory locations of a latency request queue at a memory of the computing system from where the device can directly procure data for transmission to a destination without having to first obtain a work request from the memory of the computing system using a direct memory access (DMA) operation; generating a latency message by the application when the latency message meets the threshold message size for a network connection to transmit a payload associated with the latency message; storing the payload at a slot of the latency request queue; placing a work queue request at a work queue slot at the memory of the computing system, wherein the work queue request corresponds to the latency message and is placed by the application in case processing of the latency message is rejected by the device and instead the work queue request is obtained by the device using the DMA operation before transmitting the payload; sending the latency message to the device, where the latency message includes an address of the slot of the latency request queue where the payload is stored, a transfer size for the network connection, and an indicator indicating if the application wants a completion status after the latency message is processed; determining by the device whether it can process the latency message; obtaining the payload from the slot of the latency request queue, when the device can process the latency message; storing the payload and connection information at a memory location of a memory of the device dedicated to the application that sends the latency message to the device; transmitting the payload to the destination using the network connection; and posting a completion status, if one is requested by the application; wherein the device posts the completion status at a completion queue at the memory of the computing system associated with the application with information that enables the application to determine whether other latency messages can be posted at the latency request queue. 2. The method of claim 1 , wherein the latency request queue having a plurality of slots is assigned to the application. 3. The method of claim 1 , wherein a latency resource module having a plurality of slots is assigned to the application at the device to store the payload retrieved from the latency request queue. 4. The method of claim 3 , wherein one or more of the slots for the latency resource module are used to store the connection information. 5. The method of claim 2 , wherein the application polls the completion queue to determine which slots of the latency request queue can be released for storing new payload for other latency messages. 6. The method of claim 1 , wherein the work request queue is assigned to the application so that the payload is transmitted using the work request instead of the latency message, if the device does not accept the latency message. 7. The method of claim 1 , wherein the device is one of a network interface card, a converged adapter and a host bus adapter coupled to the computing system for sending and receiving data on behalf of the application. 8. A non-transitory, machine readable storage medium storing executable instructions, which when executed by a machine, causes the machine to perform a method, the method comprising: configuring a threshold message size to determine when an application executed by a computing system can send latency messages to a device coupled to the computing system, the latency messages identifying memory locations of a latency request queue at a memory of the computing system from where the device can directly procure data for transmission to a destination without having to first obtain a work request from the memory of the computing system using a direct memory access (DMA) operation; generating a latency message by the application when the latency message meets the threshold message size for a network connection to transmit a payload associated with the latency message; storing the payload at a slot of the latency request queue; placing a work queue request at a work queue slot at the memory of the computing system, wherein the work queue request corresponds to the latency message and is placed by the application in case processing of the latency message is rejected by the device and instead the work queue request is obtained by the device using the DMA operation before transmitting the payload; sending the latency message to the device, where the latency message includes an address of the slot of the latency request queue where the payload is stored, a transfer size for the network connection, and an indicator indicating if the application wants a completion status after the latency message is processed; determining by the device whether it can process the latency message; obtaining the payload from the slot of the latency request queue, when the device can process the latency message; storing the payload and connection information at a memory location of a memory of the device dedicated to the application that sends the latency message to the device; transmitting the payload to the destination using the network connection; and posting a completion status, if one is requested by the application; wherein the device posts the completion status at a completion queue at the memory of the computing system associated with the application with information that enables the application to determine whether other latency messages can be posted at the latency request queue. 9. The storage medium of claim 8 , wherein the latency request queue having a plurality of slots is assigned to the application. 10. The storage medium of claim 8 , wherein a latency resource module having a plurality of slots is assigned to the application at the device to store the payload retrieved from the latency request queue. 11. The storage medium of claim 10 , wherein one or more of the slots for the latency resource module are used to store the connection information. 12. The storage medium of claim 9 , wherein the application polls the completion queue to determine which slots of the latency request queue can be released for storing new payload for other latency messages. 13. The storage medium of claim 8 , wherein the work request queue is assigned to the application so that the payload is transmitted using the work request instead of the latency message, if the device does not accept the latency message. 14. The storage medium of claim 8 , wherein the device is one of a network interface card, a converged adapter and a host bus adapter coupled to the computing system for sending and receiving data on behalf of the application. 15. A system, comprising: a computing system having a processor for executing instructions out of a memory and interfacing with a device having a device processor executing instructions out of a device memory; wherein a threshold message size is configured to determine when an application executed by the computing system processor can send latency messages to the device identifying memory locations of a latency request queue at the memory of the computing system from where the device can directly procure data for transmission to a destination without having to first obtain a work request from the memory of the computing system using a direct memory access (DMA) operation; wherein the application ge
in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46) · CPC title
for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS] · CPC title
Storing data temporarily at an intermediate stage, e.g. caching · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.