IP Library Granted Patent US 9,438,482
Granted Patent B2
US 9,438,482 · App. 13/862,695 · Granted Sep 6, 2016

Forward request queuing in a distributed edge processing environment

Inventors: William E. Weihl (San Francisco, CA); Gene Shekhtman (Cupertino, CA)
Assignee: Akamai Technologies, Inc.
H04L41/50G06F9/505
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 9,438,482
App. No.
13/862,695
Granted
Sep 6, 2016
Kind
B2
Abstract

A server in a distributed environment includes a process that manages incoming client requests and selectively forwards service requests to other servers in the network. The server includes storage in which at least one forwarding queue is established. The server includes code for aggregating service requests in the forwarding queue and then selectively releasing the requests, or some of them, to another server. The queuing mechanism preferably is managed by metadata, which, for example, controls how many service requests may be placed in the queue, how long a given service request may remain in the queue, what action to take in response to a client request if the forwarding queue's capacity is reached, etc. In one embodiment, the server generates an estimate of a current load on an origin server (to which it is sending forwarding requests) and instantiates the forward request queuing when that current load is reached.

Claims (18)

1. Apparatus for use in a distributed network, comprising:

at least one hardware processor, an operating system, and a process executed by the hardware processor that manages incoming client requests and selectively forwards given service requests to at least one other server in the distributed network;

storage coupled to the processor and including at least one queue; and

code tangibly embodied on computer media and executed by the hardware processor, the code comprising:

first code operative to make a first determination whether a request should be sent to the other server in the distributed network and, conditioned upon the first determination being made, to make a second determination whether the request should be sent to the queue rather than sent forward to the other server, thereby overriding the first determination, wherein the second determination regarding whether the request should be sent to the queue rather than sent forward to the other server is based on one of: a value of an estimated load on the other server, and a value representing a maximum number of allowed concurrent connections to the other server;

second code operative upon determining that the request should be sent forward to the other server to modify the estimated load value and initiate forwarding of the request; and

third code operative upon determining that the request should be sent to the queue to insert the request into the queue based on one of: a priority, and an arrival time.

2. The apparatus as described in claim 1 , wherein the process is controlled by metadata.

3. The apparatus as described in claim 2 , wherein the metadata identifies a maximum number of service requests that may be aggregated in the queue.

4. The apparatus as described in claim 2 , wherein the metadata identifies a maximum time that a given service request may remain in the queue.

5. The apparatus as described in claim 2 , wherein the metadata identifies a number of given service requests that may be released from the queue at a given time.

6. The apparatus as described in claim 2 , wherein the process aggregates in the queue one or more service requests when a rate of incoming client requests to the process exceeds a limit.

7. The apparatus as described in claim 6 , wherein the limit is set by metadata.

8. The apparatus as described in claim 6 , wherein the limit is a maximum number of service requests that can be forwarded to the given other server at a given time.

9. The apparatus as described in claim 1 , further including code responsive to a third determination that a maximum number of service requests are in the queue for taking a given action.

10. The apparatus as described in claim 1 , wherein the given action is issuing an error code in response to a given client request being handled by the process.

11. The apparatus as described in claim 1 , wherein the given action is issuing given content in response to a given client request being handled by the process.

12. The apparatus as described in claim 1 wherein the code adjusts the estimated load and thus the rate at which the process forwards the service requests by a number of failures or slow connections encountered by the process under a current estimated load.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 1, 2016
From: SHEKHTMAN, GENE
To: AKAMAI TECHNOLOGIES, INC.
Reel/Frame 039307/0314 →
Continuity (3)
Continuation 10833449 · Apr 28, 2004
Provisional Application 60465926 · Apr 28, 2003
Related Publication 20130232249A1 · Sep 5, 2013