Methods and systems for caching content valid for a range of client requests
First Claim
1. A computer-implemented method performed by a content delivery network (CDN) server that has circuitry forming one or more processors and memory holding instructions for execution by the one or more processors, the method comprising:
- sending a request to an origin server;
receiving a response to the request from the origin server, the response comprising;
(i) content that is responsive to the request and (ii) a range token, the range token specifying a data range;
serving the content to a first client device;
storing the content in a cache local to the CDN server, in association with the range token;
serving the content from the cache to at least a second client device, in response to a request from the second client device;
receiving a message from the origin server, the message comprising an invalidation assertion that comprises any of;
(iii) a specific data point within the data range and (iv) a sub-range within the data range;
upon receipt of the message, the CDN server determining that any of (iii) the specific data point and the (iv) sub-range falls within the data range specified by the range token;
in response to the determination, invalidating the content that was stored in the cache local to the CDN server, such that the CDN server no longer serves the content to client devices from the cache.
1 Assignment
0 Petitions
Accused Products
Abstract
Described herein are systems, devices, and methods for content delivery on the Internet. In certain non-limiting embodiments, a caching model is provided that can support caching for indefinite time periods, potentially with infinite or relatively long time-to-live values, yet provide prompt updates when the underlying origin content changes. In one approach, an origin server can annotate its responses to content requests with tokens, e.g., placing them in an appended HTTP header or otherwise. The tokens can drive the process of caching, and can be used as handles for later invalidating the responses within caching proxy servers delivering the content. Tokens may be used to represent a variety of kinds of dependencies expressed in the response, including without limitation data, data ranges, or logic that was a basis for the construction of the response.
85 Citations
26 Claims
-
1. A computer-implemented method performed by a content delivery network (CDN) server that has circuitry forming one or more processors and memory holding instructions for execution by the one or more processors, the method comprising:
-
sending a request to an origin server; receiving a response to the request from the origin server, the response comprising;
(i) content that is responsive to the request and (ii) a range token, the range token specifying a data range;serving the content to a first client device; storing the content in a cache local to the CDN server, in association with the range token; serving the content from the cache to at least a second client device, in response to a request from the second client device; receiving a message from the origin server, the message comprising an invalidation assertion that comprises any of;
(iii) a specific data point within the data range and (iv) a sub-range within the data range;upon receipt of the message, the CDN server determining that any of (iii) the specific data point and the (iv) sub-range falls within the data range specified by the range token; in response to the determination, invalidating the content that was stored in the cache local to the CDN server, such that the CDN server no longer serves the content to client devices from the cache. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A system, comprising:
-
A. a content delivery network (CDN) server that has circuitry forming one or more processors and memory holding instructions that upon execution by the one or more processors to cause the CDN server to; send a request to an origin server; receive a response to the request from the origin server, the response comprising;
(i) content that is responsive to the request and (ii) a range token, the range token specifying a data range;serve the content to a first client device; store the content in a cache local to the CDN server, in association with the range token; serve the content from the cache to at least a second client device, in response to a request from the second client device; B. the origin server having circuitry forming one or more processors and memory holding instructions that upon execution by the one or more processors to cause the origin server to; receive any of an addition and modification to data at the origin server; determine that the any of addition and modification changes data within the data range; in response to said determination, generate a message comprising an invalidation assertion that comprises any of;
(iii) a specific data point within the data range and (iv) a sub-range within the data range;send the message to the CDN server; C. the CDN server memory holding instructions that upon execution by the one or more processors to cause the CDN server to; receive the message from the origin server; upon receipt of the message, determine that any of (iii) the specific data point and the (iv) sub-range falls within the data range specified by the range token; in response to the determination, invalidate the content that was stored in the cache local to the CDN server, such that the CDN server no longer serves the content to client devices from the cache. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A computer-implemented method performed by a content delivery network (CDN) server that has circuitry forming one or more processors and memory holding instructions for execution by the one or more processors, the method comprising:
-
sending a request to an origin server; receiving a response to the request from the origin server, the response comprising;
(i) content that is responsive to the request and (ii) a range token, the range token specifying a first data range, and (iii) a tolerance value for the first data range endpoints;serving the content to a first client device; storing the content in a cache local to the CDN server, in association with the range token; receiving a request from a second client device, the request specifying a second data range that describes the content of interest to a user of the second client device; in response to the request from the second client device, determining whether the content stored in the cache is a cache hit, at least by; applying the tolerance value to the first data range endpoints; determining that the second data range falls within the first data range given the tolerance value for the endpoints; determining that the range token has not been invalidated by the origin server; upon a determination that the content stored in the cache is a cache hit, serving the content from the cache to the second client device, in response to the request from the second client device. - View Dependent Claims (22, 23, 24, 25, 26)
-
Specification