Mechanism for caching dynamically generated content
First Claim
1. A computer-implemented method for serving dynamic content, comprising:
- receiving an initialization instruction from an application to initialize a cache set in a cache, said initialization instruction including one or more references to one or more functions of said application that may be invoked to maintain said cache set;
initializing said cache set;
associating with said cache set said one or more references;
receiving an instruction from said application to send a cached version of dynamic content to a client to respond to a request from said client, wherein said dynamic content is stored in an unassembled form prior to being requested by any party;
accessing information associated with said cached version of said dynamic content from said cache;
determining whether said cached version of said dynamic content is currently valid;
in response to a determination that said cached version of said dynamic content is not currently valid;
instructing said application to dynamically generate said dynamic content to derive an updated version of said dynamic content;
incorporating said updated version of said dynamic content into a response to said request; and
sending said response to said client.
2 Assignments
0 Petitions
Accused Products
Abstract
A mechanism for caching dynamically generated content is disclosed, wherein initially, a server receives a request from a client for a set of dynamically generated content. In response to the request, the server accesses a cached version of the requested content, which was generated previously, and determines whether the cached version is still valid. If the cached version is no longer valid (e.g. is out of date), then the requested content is dynamically generated and stored in a cache, replacing the outdated version. In addition, the freshly generated content is provided to the client in response to the request. The client is thus provided with the most current information. On the other hand, if the cached version is still valid, then the server foregoes generating the content. Instead, it provides the cached version of the content to the client. By doing so, the server reduces the time required to return the content to the client, and significantly improves system performance.
72 Citations
34 Claims
-
1. A computer-implemented method for serving dynamic content, comprising:
-
receiving an initialization instruction from an application to initialize a cache set in a cache, said initialization instruction including one or more references to one or more functions of said application that may be invoked to maintain said cache set; initializing said cache set; associating with said cache set said one or more references; receiving an instruction from said application to send a cached version of dynamic content to a client to respond to a request from said client, wherein said dynamic content is stored in an unassembled form prior to being requested by any party; accessing information associated with said cached version of said dynamic content from said cache; determining whether said cached version of said dynamic content is currently valid; in response to a determination that said cached version of said dynamic content is not currently valid; instructing said application to dynamically generate said dynamic content to derive an updated version of said dynamic content; incorporating said updated version of said dynamic content into a response to said request; and sending said response to said client. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A computer-implemented method for servicing a request, comprising:
-
receiving an initialization instruction from an application to initialize a cache set in a cache, said initialization instruction including one or more references to one or more functions of said application that may be invoked to maintain said cache set; initializing said cache set; associating with said cache set said one or more references; receiving a first request for a set of dynamic content; dynamically generating said dynamic content, wherein said dynamic content is stored in an unassembled form prior to being requested by any party; storing a cached version of said dynamic content in said cache; receiving, from a client, a request for said dynamic content; accessing information associated with said cached version of said dynamic content; determining whether said cached version of said dynamic content is cuffently valid; in response to a determination that said cached version of said dynamic content is not currently valid; dynamically generating said dynamic content to derive an updated version of said dynamic content; incorporating said updated version of said dynamic content into a response to said second request; sending said response to said client; in response to a determination that said cached version of said dynamic content is currently valid; incorporating said cached version of said dynamic content into said response rather than dynamically generating said dynamic content; and sending said response to said client. - View Dependent Claims (14, 15, 16, 17)
-
-
18. A computer readable storage medium having stored thereon instructions which, when executed by one or more processors, cause the one or more processors to service a request, said computer readable medium comprising:
-
instructions for causing one or more processors to receive an initialization instruction from said application to initialize a cache set in said cache, said initialization instruction including one or more references to one or more functions of said application that may be invoked to maintain said cache set; instructions for causing one or more processors to initialize said cache set; instructions for causing one or more processors to associate with said cache set said one or more references; instructions for receiving a first request for a set of dynamic content; instructions for dynamically generating said dynamic content, wherein said dynamic content is stored in an unassembled form prior to being requested by any party; instructions for storing a cached version of said dynamic content in said cache; instructions for causing one or more processors to receive, from a client, a second request for said dynamic content; instructions for causing one or more processors to access information associated with said cached version of said dynamic content; instructions for causing one or more processors to determine whether said cached version of said dynamic content is currently valid; instructions for causing one or more processors to dynamically generate said dynamic content to derive an updated version of said dynamic content in response to determining that said cached version of said dynamic content is not currently valid; instructions for causing one or more processors to incorporate said updated version of said dynamic content into a response to said second request in response to determining that said cached version of said dynamic content is not currently valid; instructions for causing one or more processors to send said response to said client in response to determining that said cached version of said dynamic content is not currently valid; instructions for incorporating said cached version of said dynamic content into said response rather than dynamically generating said dynamic content in response to a determination that said cached version of said dynamic content is currently valid; and instructions for sending said response to said client in response to said determination that said cached version of said dynamic content is currently valid. - View Dependent Claims (19, 20, 21, 22)
-
-
23. A computer readable storage medium having stored thereon instructions which, when executed by one or more processors, cause the one or more processors to serve dynamic content, said computer readable medium comprising:
-
instructions for causing one or more processors to receive an initialization instruction from said application to initialize a cache set in said cache, said initialization instruction including one or more references to one or more functions of said application that may be invoked to maintain said cache set; instructions for causing one or more processors to initialize said cache set; and instructions for causing one or more processors to associate with said cache set said one or more references instructions for causing one or more processors to receive an instruction from said application to send a cached version of dynamic content to said client to respond to a request from said client, wherein said dynamic content is stored in an unassembled form prior to being requested by any party; instructions for causing one or more processors to access information associated with said cached version of said dynamic content from a cache; instructions for causing one or more processors to determine whether said cached version of said dynamic content is currently valid; in response to a determination that said cached version of said dynamic content is not currently valid; instructions for causing one or more processors to instruct said application to dynamically generate said dynamic content to derive an updated version of said dynamic content; instructions for causing one or more processors to incorporate said updated version of said dynamic content into a response to said request; and instructions for causing one or more processors to send said response to said client. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34)
-
Specification