IP Library Granted Patent US 12701603
Granted Patent B1
US 12701603 · App. 17/937,392 · Granted Aug 4, 2026

Updating a request during propagation among services to include different priority values for request processing

Inventors: Jui Te Tseng (Edmonds, WA); Eva Lacy (Maynooth, IE); Avinash Nagasundaram (Bellevue, WA); Forrest MacKenzie Vines (Bonney Lake, WA); Issa Rashid Fattah (Brooklyn, NY)
Assignee: Amazon Technologies, Inc.
H04W72/56H04L47/23
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12701603
App. No.
17/937,392
Granted
Aug 4, 2026
Kind
B1
Abstract

Various techniques are described for updating a request during propagation among services to include different priority values. Each service may determine its own priority for a request and add that priority to the request's overall priority value before propagating the request to the next service. When an overloaded service receives multiple requests, it may order the requests into a queue based on the different priority values. This may allow multiple different services to affect the priority/importance of any given request. A service may use the different priorities in order to determine the lowest priority requests that should be dropped when a queue needs to make room for a higher priority request.

Claims (76)

1 . A system, comprising:

one or more processors; and

one or more memories, wherein the one or more memories have stored thereon instructions, which when executed by the one or more processors, cause the one or more processors to implement:

a service of a provider network, wherein the service is configured to:

receive a request from a client;

determine, based on one or more attributes associated with the request, a first priority value for the request, wherein the first priority value indicates a priority of the request relative to other requests received by the service;

update the request to include the first priority value to generate a first updated request; and

propagate the first updated request to another service of the provider network; and

the other service of the provider network, wherein the other service is configured to:

receive the first updated request from the service;

determine, based on one or more of attributes associated with the first updated request, a second priority value for the first updated request, wherein the second priority value indicates a priority of the first updated request relative to other requests received by the other service;

update the first updated request, which was received from the service by the other service, to include the second priority value determined by the other service, to generate a second updated request that comprises the first priority value assigned by the service and the second priority value assigned by the other service after the first priority value was assigned by the service; and

propagate the second updated request to an additional service of the provider network.

2 . The system as recited in claim 1 , wherein the other service is further configured to:

receive a plurality of other requests from the service and one or more different services, wherein respective requests of the plurality of other requests comprises a respective first priority value assigned by the service;

determine, based at least on the first priority value of the first updated request and on the respective first priority values of the plurality of other requests, a sequential order of the first updated request and the plurality of other requests; and

process the first updated request and the plurality of other requests according to the sequential order.

3 . The system as recited in claim 2 , wherein the other service is further configured to:

receive an additional request from the service or one of the other services;

determine, based at least on the first priority value of the first updated request, the respective first priority values of the other requests, and a first priority value assigned by the service to the additional request, that a particular one of the other requests is to be rejected; and

in response to the determination that the particular request is to be rejected, reject the particular request.

4 . The system as recited in claim 1 , wherein the service is configured to:

trust the first priority value from the service and trust the second priority value from the other service at a lower level of trust than the first priority value.

5 . The system as recited in claim 1 , wherein the additional service is configured to:

receive the second updated request from the other service;

receive a plurality of different requests from a different service, wherein respective requests of the plurality of different requests comprises a respective first priority value assigned by the service and a respective second priority value assigned by the different service;

determine, based at least on the respective second priority values of the plurality of different requests, a sequential order of the plurality of different requests;

determine, based at least on the first priority value of the second updated request and on the respective first priority values of the plurality of different requests, another sequential order of the second updated request with respect to the plurality of different requests; and

process the second updated request and the plurality of different requests according to the sequential order of the plurality of different requests and the other sequential order of the second updated request with respect to the plurality of different requests.

6 . A method, comprising:

performing, by one or more computing devices of a provider network:

receiving a request for a service from another service, wherein the request comprises a priority value, and wherein the priority value comprises a first priority value that indicates a priority of the request relative to other requests received by the other service;

determining, based on one or more attributes associated with the request, a second priority value for the request, wherein the second priority value indicates a priority of the request relative to other requests received by the service;

updating the request, which was received from the other service by the service, to include the second priority value determined by the service, to generate a first updated request that comprises the first priority value assigned by the other service and the second priority value assigned by the service after the first priority value was assigned by the other service; and

propagating the first updated request from the service to an additional service.

7 . The method as recited in claim 6 , further comprising performing, by the one or more computing devices:

receiving the first updated request for the additional service and a plurality of other requests for the additional service from one or more different services, wherein respective requests of the plurality of other requests comprises a respective first priority value assigned by the other service;

determining, based at least on the first priority value of the first updated request and on the respective first priority values of the plurality of other requests, a sequential order of the first updated request and the plurality of other requests; and

causing the first updated request and the plurality of other requests to be processed by the additional service according to the sequential order.

8 . The method as recited in claim 7 , further comprising performing, by the one or more computing devices:

determining that the additional service is unable to begin processing the first updated request and the plurality of other requests; and

in response to determining that the additional service is unable to begin processing the first updated request and the plurality of other requests, determining the sequential order of the first updated request and the plurality of other requests.

9 . The method as recited in claim 7 , wherein causing the first updated request and the plurality of other requests to be processed by the additional service according to the sequential order comprises:

adding the first updated request and the plurality of other requests to a queue according to the sequential order, wherein the queue is implemented by a proxy service, a load balancer, or the additional service.

10 . The method as recited in claim 9 , further comprising performing, by the one or more computing devices:

receiving an additional request from the service or from one of the different services, wherein the additional request comprises a first priority value assigned by the other service;

determining that a first priority value of a particular one of the other requests is lower than the first priority value of the additional request and any other first priority values of requests of the queue;

in response to determining that the first priority value of the particular other request is lower than the first priority value of the additional request and any other first priority values of requests of the queue:

dropping the particular other request from the queue; and

adding the additional request to the queue.

11 . The method as recited in claim 6 , wherein updating the request to include the second priority value comprises one or more of:

updating the priority value of a header of the request to include the second priority value, or

appending the second priority value to the first priority value of the request.

12 . The method as recited in claim 6 , wherein the one or more attributes associated with the request comprises a uniform resource locator (URL) prefix of the request.

13 . The method as recited in claim 12 , wherein the first priority value comprises a numerical value between 0 and 1 and is represented in the first updated request in a binary decimal format, and wherein the second priority value comprises a different numerical value between 0 and 1 and is represented in the first updated request in the binary decimal format.

14 . The method as recited in claim 13 , wherein receiving the request for the service, determining the second priority value for the request, or updating the request to include the second priority value is performed by one or more of:

a proxy service,

a load balancer, or

the service.

15 . One or more non-transitory computer-accessible storage media storing program instructions that when executed on or across one or more processors cause the one or more processors to implement a service to:

receive a request from another service, wherein the request comprises a priority value, and wherein the priority value comprises a first priority value that indicates a priority of the request relative to other requests received by the other service;

determine, based on one or more attributes associated with the request, a second priority value for the request, wherein the second priority value indicates a priority of the request relative to other requests received by the service;

update the request, which was received from the other service by the service, to include the second priority value determined by the service, to generate a first updated request that comprises the first priority value assigned by the other service and the second priority value assigned by the service after the first priority value was assigned by the other service; and

propagate the first updated request to an additional service.

16 . The one or more storage media as recited in claim 15 , wherein the program instructions when executed on or across the one or more processors further cause the one or more processors to implement the service to:

receive the request and a plurality of other requests from one or more different services, wherein respective requests of the plurality of other requests comprises a respective first priority value assigned by the other service;

determine, based at least on the first priority value of the request and on the respective first priority values of the plurality of other requests, a sequential order of the request and the plurality of other requests; and

process the request and the plurality of other requests according to the sequential order.

17 . The one or more storage media as recited in claim 16 , wherein the plurality of other requests comprises a group of requests from a particular service that respectively comprises a second priority value assigned by the particular service, and wherein to determine the sequential order of the request and the plurality of other requests, the program instructions when executed on or across the one or more processors further cause the one or more processors to implement the service to:

determine, based at least on the respective second priority values of the group of requests from the particular service, another sequential order of the group of requests from the particular service; and

determine, based at least on the first priority value of the request, the respective first priority values of the plurality of other requests, and the other sequential order of the group of requests, the sequential order of the request and the plurality of other requests.

18 . The one or more storage media as recited in claim 16 , wherein the service is configured to trust the first priority values assigned by the other service in order to determine sequential order of different requests received by the other service.

19 . The one or more storage media as recited in claim 15 , wherein to generate the first updated request, the program instructions when executed on or across the one or more processors further cause the one or more processors to implement the service to:

update the request to include an identifier of the service.

20 . The one or more storage media as recited in claim 19 , wherein to generate the first updated request, the program instructions when executed on or across the one or more processors further cause the one or more processors to implement the service to:

update the request to include an indication of a size of the second priority value.