NETWORK CACHING FOR MULTIPLE CONTEMPORANEOUS REQUESTS
First Claim
1. A computer-implemented method for handling requests for live media events, the method comprising:
- receiving a request for media content;
identifying a cache key based on distinguishing information in the received request;
looking up the identified key in the cache to determine whether the requested media content is stored in the cache.determining whether there is a related pending request; and
in response to determining that the requested media content is not stored in the cache and that there is a pending request for the same content,waiting for a response to the pending request without forwarding the received request to an origin server; and
receiving a response to the pending request and responding to both the received request and the pending request based on the single received response,wherein the preceding steps are performed by at least one processor.
2 Assignments
0 Petitions
Accused Products
Abstract
A live caching system is described herein that reduces the burden on origin servers for serving live content. In response to receiving a first request that results in a cache miss, the system forwards the first request to the next tier while “holding” other requests for the same content. If the system receives a second request while the first request is pending, the system will recognize that a similar request is outstanding and hold the second request by not forwarding the request to the origin server. After the response to the first request arrives from the next tier, the system shares the response with other held requests. Thus, the live caching system allows a content provider to prepare for very large events by adding more cache hardware and building out a cache server network rather than by increasing the capacity of the origin server.
-
Citations
20 Claims
-
1. A computer-implemented method for handling requests for live media events, the method comprising:
-
receiving a request for media content; identifying a cache key based on distinguishing information in the received request; looking up the identified key in the cache to determine whether the requested media content is stored in the cache. determining whether there is a related pending request; and in response to determining that the requested media content is not stored in the cache and that there is a pending request for the same content, waiting for a response to the pending request without forwarding the received request to an origin server; and receiving a response to the pending request and responding to both the received request and the pending request based on the single received response, wherein the preceding steps are performed by at least one processor. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer system for caching requests on a network, the system comprising:
-
a processor and memory configured to execute software instructions; a request component configured to receive requests for content from clients over the network; a matching component configured to receive a key based on a received request with which to look up items in a cache stored by the system; a data store component configured to store cache items and configuration information; a forwarding component configured to forward requests for content that is not available in the cache to a next tier for responding to a received request, wherein the forwarding component holds requests for content that arrive during a short period of time and reduces a burden on the next tier by holding at least some requests; and a response component configured to receive forwarded responses from the next tier and provide the responses to pending requests. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A computer-readable storage medium comprising instructions for controlling a computer system to provide a response to multiple pending requests, wherein the instructions, when executed, cause a processor to perform actions comprising:
-
receiving a response to a request forwarded from a cache server to an origin server, wherein the response includes a content item requested in the forwarded request; identifying a key associated with the received response, wherein the key distinguishes the content item from other content items; adding the received response to the cache based on the identified key to allow subsequent requests to respond directly from the cache without forwarding a new request or waiting for an existing forwarded request to the origin server; identifying an original request associated with the received response; responding to the identified original request based on the received response; identifying at least one held request for the content item that arrived while the original request was pending; and providing the received response to each identified held request, so that for events that comprise multiple requests that are close in time, the system receives fewer responses from the origin server than a number of received requests.
-
Specification