Multi-version data caching
First Claim
1. A method of serving one of multiple versions of a data item from a cache, comprising:
- receiving at the cache a data request, wherein the requested data is identified by a data identifier;
searching the cache with said data identifier;
receiving, in response to said search, a policy for serving said requested data, wherein said policy identifies a parameter of said request other than said data identifier;
applying said policy to locate in the cache a first version of said requested data corresponding to a value of said parameter included in said data request; and
serving said first version of said requested data in response to said data request.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method for caching multiple versions of a data item (e.g., web page, portion of a web page, data table, data object) and determining which of the multiple versions is most responsive to a particular request. A request is received and an initial cache lookup is done with a data identifier (e.g., URL, URI) extracted from the request. If the lookup is unsuccessful (i.e., nothing is returned), the request is passed to an origin server (e.g., web server, data server). If the lookup is successful, it may provide or identify the desired data item (if one version of the data item is served for all requests) or a policy to be applied to determine which version to serve. The cache applies the policy, which identifies the additional parameters, cookies or other information to be considered, and a second lookup is done with the additional information.
-
Citations
27 Claims
-
1. A method of serving one of multiple versions of a data item from a cache, comprising:
-
receiving at the cache a data request, wherein the requested data is identified by a data identifier;
searching the cache with said data identifier;
receiving, in response to said search, a policy for serving said requested data, wherein said policy identifies a parameter of said request other than said data identifier;
applying said policy to locate in the cache a first version of said requested data corresponding to a value of said parameter included in said data request; and
serving said first version of said requested data in response to said data request. - View Dependent Claims (2, 3, 4, 5, 6)
searching a cache lookup table; and
locating in said table an entry corresponding to said data identifier.
-
-
3. The method of claim 2, wherein said receiving comprises:
retrieving from said entry said policy for serving said requested data.
-
4. The method of claim 2, wherein said receiving comprises:
-
retrieving from said entry a location of said policy for serving said requested data; and
retrieving said policy.
-
-
5. The method of claim 1, wherein said applying comprises:
-
extracting from said data request said value of said parameter; and
searching the cache with said parameter value.
-
-
6. The method of claim 1, further comprising, if said search is unsuccessful:
-
forwarding said data request to a server configured to produce said requested data;
receiving from the server one of multiple versions of said requested data; and
storing said one version in the cache.
-
-
7. A method of serving data from a cache, comprising:
-
receiving at the cache a request for a data item;
extracting from said request a first parameter identifying said data item;
conducting a first search of the cache for said data item with said first parameter;
if said first search locates said data item in the cache, serving said data item; and
if said first search identifies a policy for serving said data item;
extracting from said request a value for a second parameter specified by said policy; and
conducting a second search of the cache with said second parameter value. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
if said first search is unsuccessful, retrieving said data item from a server;
storing said data item in the cache; and
if a first policy for said data item is received, storing said first policy.
-
-
9. The method of claim 7, wherein said first parameter is a Uniform Resource Locator.
-
10. The method of claim 7, wherein said first parameter is a Uniform Resource Identifier.
-
11. The method of claim 7, wherein said conducting a first search comprises:
-
searching a cache lookup table for said first parameter; and
receiving an entry in said cache lookup table.
-
-
12. The method of claim 11, wherein said entry comprises said data item.
-
13. The method of claim 11, wherein said entry identifies a location of said data item in the cache.
-
14. The method of claim 11, wherein said entry comprises a policy for identifying one of multiple versions of said data item.
-
15. The method of claim 11, wherein said entry identifies a location of a policy for identifying one of multiple versions of said data item.
-
16. The method of claim 7, wherein said policy specifies information, other than said first parameter, for selecting one of multiple versions of said data item.
-
17. The method of claim 7, wherein said second parameter is a cookie.
-
18. The method of claim 7, wherein said second parameter comprises a browser type.
-
19. The method of claim 7, wherein said second parameter comprises a browser version.
-
20. The method of claim 7, wherein said second parameter comprises a country identifier.
-
21. The method of claim 7, wherein said second parameter comprises a language identifier.
-
22. A computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method of serving one of multiple versions of a data item from a cache, the method comprising:
-
receiving at the cache a data request, wherein the requested data is identified by a data identifier;
searching the cache with said data identifier;
receiving, in response to said search, a policy for serving said requested data, wherein said policy identifies a parameter of said request other than said data identifier;
applying said policy to locate in the cache a first version of said requested data corresponding to a value of said parameter included in said data request; and
serving said first version of said requested data in response to said data request.
-
-
23. A computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method of serving data from a cache, the method comprising:
-
receiving at the cache a request for a data item;
extracting from said request a first parameter identifying said data item;
conducting a first search of the cache for said data item with said first parameter;
if said first search locates said data item in the cache, serving said data item; and
if said first search identifies a policy for serving said data item;
extracting from said request a value for a second parameter specified by said policy; and
conducting a second search of the cache with said second parameter value.
-
-
24. A cache system, comprising:
-
storage means configured to cache multiple versions of a first set of data, wherein said first set of data is identifiable by a data identifier;
policy means configured to specify a policy for serving one of said multiple versions of said first set of data in response to a data request; and
parsing means configured to parse said data request to retrieve a value for a parameter identified in said policy, wherein said parameter is a parameter other than said data identifier;
wherein said version of said first set of data to be served in response to said data request is determined by said value. - View Dependent Claims (25, 26, 27)
a first search means configured to search the cache system using said data identifier.
-
-
26. The cache system of claim 25, further comprising:
a second search means configured to search the cache system using said parameter value.
-
27. The cache system of claim 24, wherein said data identifier is a Uniform Resource Locator.
Specification