Explicit flow control for implicit memory registration
US-9176911-B2 · Nov 3, 2015 · US
US10439946B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10439946-B2 |
| Application number | US-201715429716-A |
| Country | US |
| Kind code | B2 |
| Filing date | Feb 10, 2017 |
| Priority date | Feb 10, 2017 |
| Publication date | Oct 8, 2019 |
| Grant date | Oct 8, 2019 |
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.
Technologies for endpoint congestion avoidance are disclosed. In order to avoid congestion caused by a network fabric that can transport data to a compute device faster than the compute device can store the data in a particular type of memory, the compute device may in the illustrative embodiment determine a suitable data transfer rate and communicate an indication of the data transfer rate to the remote compute device which is sending the data. The remote compute device may then send the data at the indicated data transfer rate, thus avoiding congestion.
Opening claim text (preview).
The invention claimed is: 1. A compute device for avoiding endpoint congestion, the compute device comprising: a processor; a host fabric interface; and a memory comprising a plurality of instructions stored thereon that, when executed, cause the compute device to: determine a message comprising data to be sent to a remote compute device, wherein the message comprises initial data and the data; determine, by the host fabric interface, a data transfer rate indicative of a rate at which the remote compute device is able to store data transmitted by the host fabric interface, wherein the data transfer rate is less than a maximum data transfer rate of the host fabric interface, but greater than zero, and wherein to determine the data transfer rate comprises to: send a packet comprising the initial data to the remote compute device and receive an acknowledgement of receipt of the packet from the remote compute device, wherein the acknowledgement comprises an indication of the data transfer rate; send, by the host fabric interface, the data to the remote compute device at a rate based on the determined data transfer rate, wherein to send the packet to the remote compute device comprises to send the packet to the remote compute device at a past data transfer rate based on past performance data indicative of a past data storage rate of the remote compute device. 2. The compute device of claim 1 , wherein the plurality of instructions further cause the compute device to update the past performance data based on the indication of the data transfer rate. 3. The compute device of claim 1 , wherein to determine the message to be sent comprises to receive, by the host fabric interface and from the remote compute device, a read request, wherein the read request comprises an indication of a memory location of the data and an indication of the data transfer rate, wherein to determine the data transfer rate comprises to determine the data transfer rate based on the indication of the data transfer rate, and wherein to send the data comprises to read, by the host fabric interface, the data from the memory location. 4. The compute device of claim 1 , wherein to send the data comprises to: send a ready to send (RTS) message to the remote compute device; receive, from the remote compute device, a clear to send (CTS) message, wherein the CTS message comprises an indication of the data transfer rate; and send, in response to receipt of the CTS message, the data, wherein to determine the data transfer rate comprises to determine the data transfer rate based on the indication of the data transfer rate. 5. The compute device of claim 1 , wherein to send the data to the remote compute device at the rate based on the determined data transfer rate comprises to send the data to the remote compute device at a rate no higher than the data transfer rate. 6. The compute device of claim 1 , wherein the host fabric interface is in its own package separate from the processor. 7. The compute device of claim 1 , wherein the host fabric interface is in a multi-chip package with the processor or is in a system-on-a-chip with the processor. 8. One or more computer-readable media comprising a plurality of instructions stored thereon that, when executed, causes a compute device to: determine a message comprising data to be sent to a remote compute device, wherein the message comprises initial data and the data; determine, by a host fabric interface of the compute device, a data transfer rate indicative of a rate at which the remote compute device is able to store data transmitted by the host fabric interface, wherein the data transfer rate is less than a maximum data transfer rate of the host fabric interface, but greater than zero, and wherein to determine the data transfer rate comprises to: send a packet comprising the initial data to the remote compute device and receive an acknowledgement of receipt of the packet from the remote compute device, wherein the acknowledgement comprises an indication of the data transfer rate; and send, by the host fabric interface, the data to the remote compute device at a rate based on the determined data transfer rate, wherein to send the packet to the remote compute device comprises to send the packet to the remote compute device at a past data transfer rate based on past performance data indicative of a past data storage rate of the remote compute device. 9. The one or more computer-readable media of claim 8 , wherein the plurality of instructions further cause the compute device to update the past performance data based on the indication of the data transfer rate. 10. The one or more computer-readable media of claim 8 , wherein to determine the message to be sent comprises to receive, by the host fabric interface and from the remote compute device, a read request, wherein the read request comprises an indication of a memory location of the data and an indication of the data transfer rate, wherein to determine the data transfer rate comprises to determine the data transfer rate based on the indication of the data transfer rate, and wherein to send the data comprises to read, by the host fabric interface, the data from the memory location. 11. The one or more computer-readable media of claim 8 , wherein to send the data to the remote compute device at the rate based on the determined data transfer rate comprises to send the data to the remote compute device at a rate no higher than the data transfer rate. 12. A compute device for avoiding endpoint congestion, the compute device comprising: a host fabric interface; means for determining a message comprising data to be sent to a remote compute device wherein the message comprises initial data and the data; means for determining, by the host fabric interface, a data transfer rate indicative of a rate at which the remote compute device is able to store data transmitted by the host fabric interface, wherein the data transfer rate is less than a maximum data transfer rate of the host fabric interface, but greater than zero, and wherein to determine the data transfer rate comprises to: send a packet comprising the initial data to the remote compute device and receive an acknowledgement of receipt of the packet from the remote compute device, wherein the acknowledgement comprises an indication of the data transfer rate; and means for sending, by the host fabric interface, the data to the remote compute device at a rate based on the determined data transfer rate, wherein to send the packet to the remote compute device comprises to send the packet to the remote compute device at a past data transfer rate based on past performance data indicative of a past data storage rate of the remote compute device. 13. The compute device of claim 12 , further comprising means for updating the past performance data based on the indication of the data transfer rate. 14. The compute device of claim 12 , wherein the means for determining the message to be sent comprises means for receiving, by the host fabric interface and from the remote compute device, a read request, wherein the read request comprises an indication of a memory location of the data and an indication of the data transfer rate, wherein the means for determining the data transfer rate comprises means for determining the data transfer rate based on the indication of the data transfer rate, and wherein the means for sending the data comprises means for reading, by the host fabric interface, the data from the memory location.
by using congestion prediction · CPC title
Avoiding congestion; Recovering from congestion · 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
Packet rate · CPC title
Active monitoring, e.g. heartbeat, ping or trace-route · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.