H04L47/623

Queue management method and apparatus

A queue management method and apparatus are disclosed. The queue management method includes: storing a first packet to a first buffer cell included in a first macrocell, where the first macrocell is enqueued to a first entity queue, the first macrocell includes N consecutive buffer cells, and the first buffer cell belongs to the N buffer cells; correcting, based on a packet length of the first packet, an average packet length in the first macrocell that is obtained before the first packet is stored, to obtain a current average packet length in the first macrocell; and generating, based on the first macrocell and the first entity queue, queue information corresponding to the first macrocell of the first macrocell in the first entity queue, a head pointer in the first macrocell, a tail pointer in the first macrocell, and the current average packet length in the first macrocell.

SYSTEMS AND METHODS FOR PREDICTIVE SCHEDULING AND RATE LIMITING
20210083986 · 2021-03-18 ·

Systems and methods are disclosed for enhancing network performance by using modified traffic control (e.g., rate limiting and/or scheduling) techniques to control a rate of packet (e.g., data packet) traffic to a queue scheduled by a Quality of Service (QoS) engine for reading and transmission. In particular, the QoS engine schedules packets using estimated packet sizes before an actual packet size is known by a direct memory access (DMA) engine coupled to the QoS engine. The QoS engine subsequently compensates for discrepancies between the estimated packet sizes and actual packet sizes (e.g., when the DMA engine has received an actual packet size of the scheduled packet). Using these modified traffic control techniques that leverage estimating packet sizes may reduce and/or eliminate latency introduced due to determining actual packet sizes.

Methods and systems that manage fetching of commands by a controller from queues of a host

A method and system for managing command fetches by an Non-Volatile Memory express (NVMe) controller from a plurality of queues in a host maintains a predefined ratio of data throughput, based on the command fetches, between the plurality of queues. Each of the plurality of queues is assigned with a particular priority and weight.

Multi-pipe bandwidth control in hosted systems
10965613 · 2021-03-30 · ·

Techniques are described that allow each host in a multi-host system to throttle its bandwidth between multiple data nodes without the need to coordinate with the other hosts. Specifically, techniques are described in which a limit is applied to the amount of sent-but-not-acknowledged data a given host may have. If the host has reached the limit, the host must wait for acknowledgements before sending more data. In one embodiment, the limit is enforced using a token-based bandwidth control. Embodiments are described in which the limit on sent-but-not-acknowledged data varies dynamically based on system conditions. Specifically, each host may monitor its aggregate latency, and increase the limit when latency is low (indicating low-congestion conditions), and decrease the limit when latency is high (indicating high-congestion conditions).

Transmitting BGP message

A method of transmitting a BGP message and a routing device are provided. According to an example of the method, a queue for holding BGP messages to be transmitted is partitioned into more than two subqueues according to types of BGP routes, where each of the subqueues is used to hold a BGP message carrying a corresponding type of BGP route. A BGP message carrying a BGP route to be advertised is placed into one of the more than two subqueues according to the type of the BGP route. A target subqueue is selected from the more than two subqueues according to a first scheduling algorithm, and a BGP message in the target subqueue is transmitted.

Systems and methods for predictive scheduling and rate limiting
10834009 · 2020-11-10 · ·

Systems and methods are disclosed for enhancing network performance by using modified traffic control (e.g., rate limiting and/or scheduling) techniques to control a rate of packet (e.g., data packet) traffic to a queue scheduled by a Quality of Service (QoS) engine for reading and transmission. In particular, the QoS engine schedules packets using estimated packet sizes before an actual packet size is known by a direct memory access (DMA) engine coupled to the QoS engine. The QoS engine subsequently compensates for discrepancies between the estimated packet sizes and actual packet sizes (e.g., when the DMA engine has received an actual packet size of the scheduled packet). Using these modified traffic control techniques that leverage estimating packet sizes may reduce and/or eliminate latency introduced due to determining actual packet sizes.

Distributed storage system and method for managing storage access bandwidth for multiple clients
10810143 · 2020-10-20 · ·

System and method for managing storage requests issued from multiple sources in a distributed storage system utilizes different queues at a host computer in the distributed storage system to place different classes of storage requests for access to a virtual storage area network. The storage requests in the queues are processed using a fair scheduling algorithm. For each queue, when the storage requests in the queue exceeds a threshold, a backpressure signal is generated and transmitted to at least one source for a class of storage requests queued in one of the queues corresponding to that backpressure signal to delay issuance of new storage requests of that class of storage requests.

NOF-Based Read Control Method, Apparatus, and System
20200326879 · 2020-10-15 ·

A NOF-based read control method, apparatus, and system belong to the field of networked storage. The method includes: receiving, by a NOF engine by using a communication link, a read request sent by a host; sending at least one read command to an NVMe hard disk based on the read request; and when congestion occurs on the communication link, generating a congestion flag corresponding to the communication link, and sending the congestion flag to the NVMe hard disk, where the congestion flag is used to instruct the NVMe hard disk to suspend processing of the read command corresponding to the communication link.

BOOSTING LINKED LIST THROUGHPUT
20200252345 · 2020-08-06 ·

Multiple listlets function as a single master linked list to manage data packets across one or more banks of memory in a first-in first-out (FIFO) order, while allowing multiple push and/or pop functions to be performed per cycle. Each listlet can be a linked list that tracks pointers and is stored in a different memory bank. The nodes can include a pointer to a data packet, a pointer to the next node in the listlet and a next listlet identifier that identifies the listlet that contains the next node in the master linked list. The head and tail of each listlet, as well as an identifier each to track the head and tail of the master linked list, can be maintained in cache. The individual listlets are updated accordingly to maintain order of the master linked list as pointers are pushed and popped from the master linked list.

MULTI-PIPE BANDWIDTH CONTROL IN HOSTED SYSTEMS
20200228462 · 2020-07-16 ·

Techniques are described that allow each host in a multi-host system to throttle its bandwidth between multiple data nodes without the need to coordinate with the other hosts. Specifically, techniques are described in which a limit is applied to the amount of sent-but-not-acknowledged data a given host may have. If the host has reached the limit, the host must wait for acknowledgements before sending more data. In one embodiment, the limit is enforced using a token-based bandwidth control. Embodiments are described in which the limit on sent-but-not-acknowledged data varies dynamically based on system conditions. Specifically, each host may monitor its aggregate latency, and increase the limit when latency is low (indicating low-congestion conditions), and decrease the limit when latency is high (indicating high-congestion conditions).