Origin and cache server cooperation for compute-intensive content delivery
AssigneeAkamai Technologies, Inc.
InventorByung K. Choi
Life of this patent
Estimating the term…
Abstract
This document describes systems, methods and apparatus for locating an object and/or processed versions of that object in a CDN cache system. When a CDN server needs to send a forward request to an origin server to retrieve an object, the CDN server can append a ‘cache hint’ (sometimes referred to herein as a pointer or as ‘reverse cookie’) to its request. The cache hint preferably includes information that will be stored at the origin server and provided to other CDN servers that subsequently ask for the same object. Preferably the information is a pointer that will enable the object to be located within the CDN and/or enable the location of modified version of the object that have already been created and stored within the CDN.
Claims19
A system for delivering objects, the system comprising:
- a cache server in a content delivery network, the cache server comprising at least one hardware processor and memory storing instructions for execution on the at least one hardware processor, the instructions including instructions that upon execution cause the cache server to:
- receive a request for an object from a client;
- determine (a) that the object is a one of a class of objects that is configured to be modified in the content delivery network after retrieval from an origin server;
- determine (b) that the object is not available to serve from a local cache in response to the request from the client;
- based at least in part on the determinations (a) and (b), request the object from the origin server and include in the request a first pointer enabling a modified version of the object to be located once created in the content delivery network, the request further including a first time to live (TTL) value indicating a lifetime of the first pointer;
- the origin server comprising at least one hardware processor and memory storing instructions for execution on the at least one hardware processor, the instructions including instructions that upon execution cause the origin server to:
- receive the request from the cache server;
- check an origin data store to determine whether there is stored, in association with the object requested by the cache server, a second pointer and a second TTL indicating a lifetime of the second pointer, the second pointer enabling the modified version of the object to be located in the content delivery network;
- based at least in part on a determination that the origin data store has the second pointer and the second TTL is not expired, send a response to the request from the cache server that includes the second pointer, without sending the object;
- based at least in part on a determination that the origin data store does not have the second pointer, or that the second TTL is expired, retrieve the object from a storage device and send a response to the request from the cache server that includes the object.
A method executed by a cache server in a content delivery network, the method comprising:
- receiving a request for an object, the request being received from a client;
- determining (a) that a local cache does not have the object available to serve in response to the request from the client;
- determining (b) that the object is one of a class of objects that is configured to be modified in the content delivery network after retrieval from an origin server;
- based at least in part on (a) and (b), requesting the object from the origin server, the request including a first pointer enabling a modified version of the object to be located once created in the content delivery network;
- receiving a response from the origin server, the response comprising a second pointer instead of the object, the second pointer being to at least one server in the content delivery network distinct from the cache server from which the cache server can obtain a modified version of the object;
- reading the second pointer and based on the second pointer locating the at least one server in the content delivery network;
- from the at least one server in the content delivery network that was located based on the second pointer, requesting the modified version of the object.
A system having a plurality of cache groups for delivering objects from an origin server to client devices, the system comprising:
- a first cache group comprising a first server and a second server;
- a second cache group comprising a third server and a fourth server;
- an origin server in communication with the first server and the third server;
- the first server comprising at least one hardware processor and memory storing instructions for execution on the at least one hardware processor, the instructions including instructions that upon execution cause the first server to:
- receive a request for an object from the second server;
- determine (a) that a local cache does not have the object available to serve in response to the request from the second server;
- determine (b) that the object is one of a class of objects that is configured to be modified in-network after retrieval from the origin server;
- based at least in part on (a) and (b), request the object from the origin server, the request including a first pointer enabling a modified version of the object to be located once created in the network;
- receive a response from the origin server, the response comprising a second pointer instead of the object, the second pointer pointing to a server associated with the second cache group, from which the cache server can obtain a modified version of the object;
- reading the second pointer and based on the second pointer locating the server associated with the second cache group;
- request a modified version of the object, from the server associated with the second cache group that was located based on the second pointer.
Dependencies are inferred from the claim text.