# US 11,909,643 B2 · Efficient progression management in a tracker with multiple sources

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,909,643 B2
- Document ID: US11909643B2
- Status: Granted
- Kind: B2
- Application number: 17/473,643
- Filed: 2021-09-13
- Published: 2023-03-16
- Granted: 2024-02-20
- Earliest claimed: 2021-09-13
- Assignees: Hewlett Packard Enterprise Development LP
- Applicants: Hewlett Packard Enterprise Development LP
- Inventors: Derek Alan Sherlock
- Web page: https://patentgrep.com/patent/US11909643B2

## CPC

- H04L 47/12: Avoiding congestion; Recovering from congestion
- H04L 43/0876: Network utilisation, e.g. volume of load or congestion level
- H04L 43/16: Threshold monitoring
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A system for facilitating efficient progression management in a multi-source tracker of a responder device is provided. During operation, the system can maintain, in a memory device of the responder device, a first tracker for all requests and a second tracker for a privileged group of requests. The system can select a first group from a set of groups as the privileged group. If a request from a requesting device cannot be accepted into the first tracker, the system can determine whether the request belongs to the first group based on a header field of the request. If the request belongs to the first group, the system can select the request for accepting into the second tracker. Subsequently, when a respective request belonging to the first group has been accepted, the system can select a second group from the set of groups as the privileged group.

## Claims

### Claim 1

A method for facilitating sender-side congestion control, the method comprising:
maintaining, in a memory device of a responder device, a first tracker for all requests and a second tracker for a privileged group of requests, wherein a tracker is a buffer capable of tracking in-progress requests accepted by the tracker;
selecting, by the responder device, a first group from a set of groups as the privileged group;
receiving, by the responder device, a request from a requesting device;
determining that a request from a requesting device cannot be accepted into the first tracker;
determining whether the request belongs to the first group based on a header field of the request;
in response to the request belonging to the first group, selecting the request for accepting into the second tracker and performing a set of operations indicated in the request;
determining that a respective request belonging to the first group has been accepted; and
selecting a second group from the set of groups as the privileged group.

### Claim 2 (depends on 1)

The method of claim 1, wherein the first and second trackers are segments of an ingress tracker at the responding device.

### Claim 3 (depends on 2)

The method of claim 2, further comprising:
maintaining a threshold for the ingress tracker, wherein the second tracker is a segment of the ingress tracker beyond the threshold; and
determining whether utilization of the ingress tracker has reached the threshold.

### Claim 4 (depends on 1)

The method of claim 1, wherein selecting the request for accepting into the second tracker further comprises:
determining that the second tracker can accept the request; and
accepting the request into the second tracker.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
determining whether the first tracker can accept a second request from the requesting device, wherein the second request is not associated with the set of groups; and
allocating a non-privileged group from the set of groups to the second request.

### Claim 6 (depends on 5)

The method of claim 5, further comprising sending a negative acknowledgment (NACK) comprising an identifier of the allocated non-privileged group to the requesting device.

### Claim 7 (depends on 1)

The method of claim 1, further comprising maintaining a corresponding counter for a respective group of the set of groups, wherein the counter indicates a number of requests allocated to the group.

### Claim 8 (depends on 7)

The method of claim 7, further comprising:
incrementing the counter in response to allocating a request to the group; and
decrementing the counter in response to accepting a request belonging to the group.

### Claim 9 (depends on 1)

The method of claim 1, further comprising, in response to determining that a third request from the requesting device can be accepted in the first tracker, accepting the third request regardless of the third request's association with the set of groups.

### Claim 10

An apparatus, comprising:
processing circuitry;
a memory device to maintain a first tracker for all requests and a second tracker for a privileged group of requests, wherein a tracker is a buffer capable of tracking in-progress requests accepted by the tracker;
a privilege logic block to select a first group from a set of groups as the privileged group;
a communication logic block to receive a request from a requesting device;
an acceptance logic block to:
determine that a request from a remote apparatus cannot be accepted into the first tracker;
determine whether the request belongs to the first group based on a header field of the request; and
in response to the request belonging to the first group, select the request for accepting into the second tracker and performing a set of operations indicated in the request; and
wherein the privilege logic block is further to:
determine that a respective request belonging to the first group has been accepted; and
select a second group from the set of groups as the privileged group.

### Claim 11 (depends on 10)

The apparatus of claim 10, wherein the first and second trackers are segments of an ingress tracker in the memory device.

### Claim 12 (depends on 11)

The apparatus of claim 11, further comprising a utilization logic block to:
maintain a threshold for the ingress tracker, wherein the second tracker is a segment of the ingress tracker beyond the threshold; and
determine whether utilization of the ingress tracker has reached the threshold.

### Claim 13 (depends on 10)

The apparatus of claim 10, wherein the acceptance logic block is to select the request for accepting into the second tracker by:
determining that the second tracker can accept the request; and
accepting the request into the second tracker.

### Claim 14 (depends on 10)

The apparatus of claim 10, wherein the acceptance logic block is further to determine whether the first tracker can accept a second request from the remote apparatus, wherein the second request is not associated with the set of groups; and
wherein the apparatus further comprises an allocation logic block to allocate a non-privileged group from the set of groups to the second request.

### Claim 15 (depends on 14)

The apparatus of claim 14, further comprising a negative acknowledgment (NACK) logic block to send a NACK comprising an identifier of the allocated non-privileged group to the remote apparatus.

### Claim 16 (depends on 10)

The apparatus of claim 10, wherein the allocation logic block is further to maintain a corresponding counter for a respective group of the set of groups, wherein the counter indicates a number of requests allocated to the group.

### Claim 17 (depends on 16)

The apparatus of claim 16, wherein the allocation logic block is further to:
increment the counter in response to allocating a request to the group; and
decrement the counter in response to accepting a request belonging to the group.

### Claim 18 (depends on 10)

The apparatus of claim 10, wherein the acceptance logic block is further to, in response to determining that a third request from the remote apparatus can be accepted in the first tracker, accept the third request regardless of the third request's association with the set of groups.

### Claim 19

A computer system, comprising:
a processor;
a storage device;
a non-transitory computer-readable storage medium storing instructions, which when executed by the processor causes the processor to perform a method, the method comprising:
maintaining, in the storage device, a first tracker for all requests and a second tracker for a privileged group of requests, wherein a tracker is a buffer capable of tracking in-progress requests accepted by the tracker;
selecting a first group from a set of groups as the privileged group;
receiving a request from a requesting device;
determining that a request from a requesting device cannot be accepted into the first tracker;
determining whether the request belongs to the first group based on a header field of the request;
in response to the request belonging to the first group, selecting the request for accepting into the second tracker and performing a set of operations indicated in the request;
determining that a respective request belonging to the first group has been accepted; and
selecting a second group from the set of groups as the privileged group.

### Claim 20

The computer system of 19, wherein the method further comprises:
determining whether the first tracker can accept a second request from the requesting device, wherein the second request is not associated with the set of groups; and
allocating a non-privileged group from the set of groups to the second request.
