# US 11,121,983 B1 · Reactive throttle infrastructure

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

- Number: US 11,121,983 B1
- Document ID: US11121983B1
- Status: Granted
- Kind: B1
- Application number: 16/359,706
- Filed: 2019-03-20
- Granted: 2021-09-14
- Earliest claimed: 2019-03-20
- Assignees: United Services Automobile Association (USAA)
- Applicants: United Services Automobile Association (USAA)
- Inventors: Jason Edwards; Jami Renee Delgadillo; Valeria Rodriguez Garza; Vamshi Mohan Gobburu; Annat Rosenthal; Britton Mims Ware, IV
- Web page: https://patentgrep.com/patent/US11121983B1

## CPC

- H04L 47/25: with rate being modified by the source upon detecting a change of network conditions
- H04L 47/20: Traffic policing
- H04L 47/24: Traffic characterised by specific attributes, e.g. priority or QoS
- H04L 47/50: Queue scheduling
- H04L 47/822: {Collecting or measuring resource availability data}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Systems and methods provide a reactive throttle architecture for managing traffic to shared resources. A system comprises an interface subsystem configured to communicate with a client operatively coupled with a resource, an implementation subsystem configured to throttle traffic from the client to the resource based on a throttling policy, a monitor subsystem configured to monitor resource performance, and a policy subsystem configured to define the throttling policy based on a performance of the resource and a lane of the client.

## Claims

### Claim 1

A system, comprising:
an interface subsystem configured to communicate with a client operatively coupled with a resource, wherein the interface subsystem is configured to receive a request from a client to access the resource, wherein the client accesses the resource through multiple ones of a plurality of logical lanes, and wherein the plurality of logical lanes represent channels through which the client interacts with the resource, and wherein each of the plurality of logical lanes is configured to accept requests from a different class of clients including the client such that different service requests are allocated to different lanes based on the service type of the service request in accordance with the class of client associated with the service;
an implementation subsystem configured to throttle traffic from the client to the resource based on a throttling policy, wherein the throttling policy controls a permit issued to the client for the one of the plurality of logical lanes based on the request and criteria associated with the request and one or more queue limits associated with one or more of the plurality of logical lanes, wherein each of the lanes is capable of having a different independent queue limit from each of the other of the plurality of logical lanes;
a monitor subsystem configured to monitor resource performance associated with performance of the service requests; and
a policy subsystem configured to define the throttling policy based on a comparison of the monitored resource performance to one or more performance thresholds of the resource and traffic for each of the plurality of logical lanes associated with the resource.

### Claim 2 (depends on 1)

The system of claim 1, comprising a non-transitory computer-readable medium storing instructions that when executed by a processor are configured to effectuate:
a permit request module of the interface subsystem configured to receive the permit request from the client; and
a permit issuance module of the interface subsystem configured to release the permit to the client.

### Claim 3 (depends on 2)

The system of claim 2, wherein the permit request interface is configured to provide a permit reservation to the client when the permit is available, and wherein the permit corresponds to the permit reservation.

### Claim 4 (depends on 1)

The system of claim 1, comprising a non-transitory computer-readable medium storing instructions that when executed by a processor are configured to effectuate:
a lane status module of the interface subsystem configured to provide usage data relating to each of the plurality of logical lanes associated with the resource based on the traffic;
an interface policy module of the interface subsystem configured to access the throttling policy; and
a decision module of the interface subsystem configured to grant, deny, or queue a permit request from the client based on the usage data and the throttling policy.

### Claim 5 (depends on 1)

The system of claim 1, comprising a non-transitory computer-readable medium storing instructions that when executed by a processor are configured to effectuate:
a listener module of the interface subsystem configured to monitor a state of the system;
a throttle manager module of the implementation subsystem configured to communicate with the resource; and
a logging module of the monitor subsystem configured to log activity in the resource and communicate the activity in the resource to the interface subsystem.

### Claim 6 (depends on 1)

The system of claim 1, comprising a non-transitory computer-readable medium storing instructions that when executed by a processor are configured to effectuate:
a dynamic module of the policy subsystem configured to manage permits according to an algorithm;
a static module of the policy subsystem configured to manage permits according to a fixed pool; and
an unlimited module of the policy subsystem configured to manage permits matching demand.

### Claim 7 (depends on 1)

The system of claim 1, an application programming interface (API) configured to communicate with a legacy resource, wherein the resource is the legacy resource.

### Claim 8 (depends on 1)

The system of claim 1, wherein each of the plurality of logical lanes has a lane priority in relation to another of the plurality of logical lanes, and wherein the criteria corresponds to the lane priority.

### Claim 9 (depends on 1)

The system of claim 1, wherein permit has a permit expiration time, and wherein the criteria corresponds to the permit expiration time.

### Claim 10 (depends on 1)

The system of claim 1, wherein the permit is granted from a permit pool, and wherein the permit pool comprises dedicated permits, shared permits, and unrestricted permits.

### Claim 11 (depends on 1)

The system of claim 1, comprising a non-transitory computer-readable medium storing instructions that when executed by a processor are configured to effectuate:
an actor module of the implementation subsystem configured to communicate with an interface request module to determine disposition of the permit request by the implementation subsystem.

### Claim 12 (depends on 11)

The system of claim 11, comprising a non-transitory computer-readable medium storing instructions that when executed by a processor are configured to effectuate:
a permit parameter module of the implementation subsystem, wherein the permit parameter module of the implementation subsystem grants a permit with the parameters specified by a permit policy based on determination that the implementation subsystem is granting the permit.

### Claim 13 (depends on 11)

The system of claim 11, comprising a non-transitory computer-readable medium storing instructions that when executed by a processor are configured to effectuate:
a lane request module of the implementation subsystem configured to add the request to a queue of one of the plurality of logical lanes based on determination that the implementation subsystem is queuing the request and the criteria.

### Claim 14 (depends on 13)

The system of claim 13, wherein the actor module communicates release of a previous permit to the lane request module, wherein the release causes dequeuing of the request from the one of the plurality of logical lanes.

### Claim 15 (depends on 13)

The system of claim 13, comprising a non-transitory computer-readable medium storing instructions that when executed by a processor are configured to effectuate:
a lane management module of the implementation subsystem configured to maintain a status of the queue and a plurality of permits including the permit.

### Claim 16

A method, comprising:
receiving a request from a client to run a task utilizing a network resource, wherein the client accesses the resource to run the task through multiple ones of a plurality of logical lanes, wherein the plurality of logical lanes represent channels through which the client interacts with the resource, and wherein each of the plurality of logical lanes is configured to accept requests from a different class of clients including the client such that different service requests are allocated to different lanes based on the service type of the service request in accordance with the class of client associated with the service;
analyzing the request and criteria associated with the request based on a permit issuance policy to determine a condition for granting the permit, wherein the condition includes one or more queue limits associated with one or more of the plurality of logical lanes, wherein each of the lanes is capable of having a different independent queue limit from each of the other of the plurality of logical lanes, and wherein the permit is for one of the plurality of logical lanes;
granting the permit for the one of the plurality of logical lanes to the client based on satisfaction of the condition;
effecting running of the task based on granting of the permit and interacting with the resource through the one of the logical lanes;
monitor resource performance associated with performance of the service requests; and
defining a throttling policy based on a comparison of the monitored resource performance to one or more performance thresholds of the resource and traffic for each of the plurality of logical lanes associated with the resource.

### Claim 17 (depends on 16)

The method of claim 16, comprising:
queuing the request from the client until satisfaction of the condition, wherein the request is queued with other requests in the lane.

### Claim 18 (depends on 16)

The method of claim 16, comprising:
receiving a subsequent request for another permit to utilize the network resource;
analyzing the request based on a permit issuance policy to determine a condition for granting the permit for a selected lane among the plurality of logical lanes;
determining that a queue associated with the selected lane is at or above a maximum queue length; and
rejecting the subsequent request without granting the other permit.

### Claim 19 (depends on 16)

The method of claim 16, comprising:
determining an expected response time associated with a permit pool associated with the one of the plurality of logical lanes;
determining one or more actual response times associated with one or more preexisting permits granted from the one of the plurality of logical lanes;
comparing the one or more actual response times to the expected response time; and
increasing a number of permits associated with the one of the plurality of logical lanes in the permit pool.

### Claim 20 (depends on 16)

The method of claim 16, comprising:
determining that the task utilizing the network resource is complete;
if the task is not complete, determining when the permit expires before completion of the task utilizing the network resource; and
releasing the permit based on expiration or completion.
