High performance connection scheduler

US11979476B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11979476-B2
Application numberUS-202217961669-A
CountryUS
Kind codeB2
Filing dateOct 7, 2022
Priority dateOct 7, 2022
Publication dateMay 7, 2024
Grant dateMay 7, 2024

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Aspects of the disclosure are directed to a high performance connection scheduler for reliable transport protocols in data center networking. The connection scheduler can handle enqueue events, dequeue events, and update events. The connection scheduler can include a connection queue, scheduling queue, and quality of service arbiter to support scheduling a large number of connections at a high rate.

First claim

Opening claim text (preview).

The invention claimed is: 1. A method for scheduling connections related to data packets, the method comprising: performing, with one or more processors, an eligibility check on a connection, the eligibility check comprising determining that the connection is within one or more congestion windows associated with a transaction type of the connection; queueing, with the one or more processors, the connection in a scheduling queue of a plurality of scheduling queues based on the transaction type of the connection, each scheduling queue of the plurality of scheduling queues being associated with a transaction type; selecting, with the one or more processors, the connection from the scheduling queue based on a quality of service (QoS) arbiter decision; and queueing, with one or more processors, the selected connection in a connection queue of a plurality of connection queues based on the transaction type of the selected connection, each connection queue of the plurality of connection queues being associated with a transaction type. 2. The method of claim 1 , wherein the scheduling queues and the connection queues each comprise a plurality of linked lists, each linked list corresponding to a respective scheduling queue or connection queue. 3. The method of claim 2 , wherein the plurality of linked lists of the scheduling queues and the plurality of linked lists of the connection queues each comprise linked lists for at least one of push requests, unordered push requests, push grants, push data, or pull data transaction types. 4. The method of claim 1 , wherein the one or more congestion windows comprise a network congestion window and an end-node congestion window. 5. The method of claim 4 , wherein passing the eligibility check comprises determining that a number of outstanding requests is less than the end-node congestion window. 6. The method of claim 4 , wherein passing the eligibility check comprises determining that a packet sequence number is less than a base sequence number plus the network congestion window. 7. The method of claim 1 , further comprising performing, with the one or more processors, a solicitation check on the connection, the solicitation check comprising determining that an inflight count based on the connection is within a solicitation window. 8. The method of claim 7 , wherein passing the solicitation check further comprises determining that a rate counter is greater than a threshold. 9. The method of claim 1 , wherein selecting the connection from the scheduling queue further comprises selecting the scheduling queue based on at least one of a priority level or a weight of the scheduling queue. 10. The method of claim 1 , wherein selecting the connection from the scheduling queue is based on a weight of the connection. 11. A system comprising: one or more processors; and one or more storage devices coupled to the one or more processors and storing instructions that, when executed by the one or more processors, cause the one or more processors to perform operations for scheduling connections related to data packets, the operations comprising: performing an eligibility check on a connection, the eligibility check comprising determining that the connection is within one or more congestion windows associated with a transaction type of the connection; queueing the connection in a scheduling queue of a plurality of scheduling queues based on the transaction type of the connection, each scheduling queue of the plurality of scheduling queues being associated with a transaction type; selecting the connection from the scheduling queue based on a quality of service (QoS) arbiter decision; and queueing the selected connection in a connection queue of a plurality of connection queues based on the transaction type of the selected connection, each connection queue of the plurality of connection queues being associated with a transaction type. 12. The system of claim 11 , wherein the scheduling queues and the connection queues each comprise a plurality of linked lists, each linked list corresponding to a respective scheduling queue or connection queue. 13. The system of claim 11 , wherein: the one or more congestion windows comprise a network congestion window and an end-node congestion window; passing the eligibility check comprises determining that a number of outstanding requests is less than the end-node congestion window; and passing the eligibility check comprises determining that a packet sequence number is less than a base sequence number plus the network congestion window. 14. The system of claim 11 , wherein the operations further comprise performing a solicitation check on the connection, the solicitation check comprising determining that an inflight count based on the connection is within a solicitation window. 15. The system of claim 11 , wherein selecting the connection from the scheduling queue is based on a weight of the connection and further comprises selecting the scheduling queue based on at least one of a priority level or a weight of the scheduling queue. 16. A non-transitory computer readable medium for storing instructions that, when executed by one or more processors, cause the one or more processors to perform operations for scheduling connections related to data packets, the operations comprising: performing an eligibility check on a connection, the eligibility check comprising determining that the connection is within one or more congestion windows associated with a transaction type of the connection; queueing the connection in a scheduling queue of a plurality of scheduling queues based on the transaction type of the connection, each scheduling queue of the plurality of scheduling queues being associated with a transaction type; selecting the connection from the scheduling queue based on a quality of service (QoS) arbiter decision; and queueing the selected connection in a connection queue of a plurality of connection queues based on the transaction type of the selected connection, each connection queue of the plurality of connection queues associated with a transaction type. 17. The non-transitory computer readable medium of claim 16 , wherein the scheduling queues and the connection queues each comprise a plurality of linked lists, each linked list corresponding to a respective scheduling queue or connection queue. 18. The non-transitory computer readable medium of claim 16 , wherein: the one or more congestion windows comprise a network congestion window and an end-node congestion window; passing the eligibility check comprises determining that a number of outstanding requests is less than the end-node congestion window; and passing the eligibility check comprises determining that a packet sequence number is less than a base sequence number plus the network congestion window. 19. The non-transitory computer readable medium of claim 16 , wherein the operations further comprise performing a solicitation check on the connection, the solicitation check comprising determining that an inflight count based on the connection is within a solicitation window. 20. The non-transitory computer readable medium of claim 16 , wherein selecting the connection from the scheduling queue is based on a weight of the connection and further comprises selecting the scheduling queue based on at least one of a priority level or a weight of the scheduling queue.

Assignees

Inventors

Classifications

  • H04L67/61Primary

    taking into account QoS or priority requirements · CPC title

  • Push-based network services · CPC title

  • H04L47/50Primary

    Queue scheduling · CPC title

  • H04L47/60Primary

    implementing hierarchical scheduling · CPC title

  • Queue service order · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11979476B2 cover?
Aspects of the disclosure are directed to a high performance connection scheduler for reliable transport protocols in data center networking. The connection scheduler can handle enqueue events, dequeue events, and update events. The connection scheduler can include a connection queue, scheduling queue, and quality of service arbiter to support scheduling a large number of connections at a high …
Who is the assignee on this patent?
Google Llc
What technology area does this patent fall under?
Primary CPC classification H04L67/61. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue May 07 2024 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).