Systems and methods for managing content variations in content delivery cache
Embodiments disclosed herein provide a high performance content delivery system in which versions of content are cached for servicing web site requests containing the same uniform resource locator (URL). When a page is cached, certain metadata is also stored along with the page. That metadata includes a description of what extra attributes, if any, must be consulted to determine what version of content to serve in response to a request. When a request is fielded, a cache reader consults this metadata at a primary cache address, then extracts the values of attributes, if any are specified, and uses them in conjunction with the URL to search for an appropriate response at a secondary cache address. These attributes may include HTTP request headers, cookies, query string, and session variables. If no entry exists at the secondary address, the request is forwarded to a page generator at the back-end.
1. A method for high performance content delivery, the method comprising:
receiving a request for content from a client device, the receiving performed by a high performance delivery (HPD)-enabled system, the HPD-enabled system operating in a distributed computing environment, the distributed computing environment having a plurality of computers interconnected to each other, the plurality of computers comprising at least a server machine embodying the HPD-enabled system, the HPD-enabled system receiving the request for content from the client device over a network;
responsive to the request for content from the client device, determining a first cache address of a cache, the determining performed by the HPD-enabled system;
upon finding metadata of a variation scheme at the first cache address of the cache, determining a second cache address of the cache in accordance with the variation scheme, the determining performed by the HPD-enabled system and utilizing the metadata stored at the first cache address of the cache;
retrieving a content variant from the second cache address of the cache; and
delivering the content variant to the client device over the network.
2. The method according to claim 1 , wherein the request for content comprises a Hypertext Transfer Protocol (HTTP) request containing a Uniform Resource Locator (URL) referencing a web page or a fragment thereof.
3. The method according to claim 2 , wherein the first cache address of the cache is determined based solely on the URL.
4. The method according to claim 2 , wherein the second cache address of the cache is determined utilizing the URL and a value of at least one variation parameter extracted from the request for content.
5. The method according to claim 1 , wherein the metadata includes a description of what attribute, if any, is to be consulted to determine what version of content to serve in response to a request.
6. The method according to claim 1 , wherein the variation scheme represents a logical group of content variants residing at different secondary addresses of the cache.
7. The method according to claim 1 , wherein when no entry is found at the second cache address of the cache, a new variation of the content is generated, delivered to the client device over the network, and cached at the second cache address of the cache.
8. A high performance delivery (HPD)-enabled system, comprising:
at least one processor;
at least one non-transitory computer readable medium; and
stored instructions embodied on the at least one non-transitory computer readable medium and translatable by the at least one processor to perform:
receiving a request for content from a client device over a network;
responsive to the request for content from the client device, determining a first cache address of a cache;
upon finding metadata of a variation scheme at the first cache address of the cache, determining a second cache address of the cache in accordance with the variation scheme, the determining utilizing the metadata stored at the first cache address of the cache;
retrieving a content variant from the second cache address of the cache; and
delivering the content variant to the client device over the network.
9. The HPD-enabled system of claim 8 , wherein the request for content comprises a Hypertext Transfer Protocol (HTTP) request containing a Uniform Resource Locator (URL) referencing a web page or a fragment thereof and wherein the first cache address of the cache is determined based solely on the URL.
10. The HPD-enabled system of claim 8 , wherein the request for content comprises a Hypertext Transfer Protocol (HTTP) request containing a Uniform Resource Locator (URL) referencing a web page or a fragment thereof and wherein the second cache address of the cache is determined utilizing the URL and a value of at least one variation parameter extracted from the request for content.
11. The HPD-enabled system of claim 8 , wherein the metadata includes a description of what attribute, if any, is to be consulted to determine what version of content to serve in response to a request.
12. The HPD-enabled system of claim 8 , wherein the variation scheme represents a logical group of content variants residing at different secondary addresses of the cache.
13. The HPD-enabled system of claim 8 , wherein when no entry is found at the second cache address of the cache, a new variation of the content is generated, delivered to the client device over the network, and cached at the second cache address of the cache.
14. A computer program product comprising at least one non-transitory computer readable medium storing instructions translatable by at least one processor of a high performance delivery (HPD)-enabled system operating in a distributed computing environment to perform:
receiving a request for content from a client device over a network;
responsive to the request for content from the client device, determining a first cache address of a cache;
upon finding metadata of a variation scheme at the first cache address of the cache, determining a second cache address of the cache in accordance with the variation scheme, the determining utilizing the metadata stored at the first cache address of the cache;
retrieving a content variant from the second cache address of the cache; and
delivering the content variant to the client device over the network.
15. The computer program product of claim 14 , wherein the request for content comprises a Hypertext Transfer Protocol (HTTP) request containing a Uniform Resource Locator (URL) referencing a web page or a fragment thereof.
16. The computer program product of claim 15 , wherein the first cache address of the cache is determined based solely on the URL.
17. The computer program product of claim 15 , wherein the second cache address of the cache is determined utilizing the URL and a value of at least one variation parameter extracted from the request for content.
18. The computer program product of claim 14 , wherein the metadata includes a description of what attribute, if any, is to be consulted to determine what version of content to serve in response to a request.
19. The computer program product of claim 14 , wherein the variation scheme represents a logical group of content variants residing at different secondary addresses of the cache.
20. The computer program product of claim 14 , wherein when no entry is found at the second cache address of the cache, a new variation of the content is generated, delivered to the client device over the network, and cached at the second cache address of the cache.