Updating data objects for dynamic application caching
First Claim
Patent Images
1. A method comprising:
- receiving, at a cache server, a request for a data object stored in a data object server;
determining whether a time-to-live period associated with a copy of the data object stored in the cache server has expired, wherein the time-to-live period is based on a hit rate, a change rate and a freshness for the data object; and
transmitting the data object stored in the cache server upon determining the time-to-live period associated with the copy of the data object stored in the cache server has not expired.
3 Assignments
0 Petitions
Accused Products
Abstract
In an embodiment, a method comprises receiving a hit rate and a change rate for a data object stored in a cache. The method also includes updating a time-to-live period for the data object stored in the cache based on the hit rate and the change rate for the data object.
151 Citations
52 Claims
-
1. A method comprising:
-
receiving, at a cache server, a request for a data object stored in a data object server;
determining whether a time-to-live period associated with a copy of the data object stored in the cache server has expired, wherein the time-to-live period is based on a hit rate, a change rate and a freshness for the data object; and
transmitting the data object stored in the cache server upon determining the time-to-live period associated with the copy of the data object stored in the cache server has not expired. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16)
generating a new copy of the data object retrieved from the data object server; - and
transmitting the data object retrieved from the data object server.
-
-
4. The method of claim 3, comprising updating the time-to-live period associated with the data object.
-
5. The method of claim 4, comprising transmitting characteristics associated with the data object to a different cache server, the characteristics including a hash of the new copy of the data object, and a time when the request was received.
-
6. The method of claim 5, comprising:
-
determining if the new copy of the data object is different from the copy of the data object stored in the cache server; and
storing the new copy of the data object in the cache server, upon determining that the new copy of the data object is different.
-
-
7. The method of claim 6, wherein the indication that the new copy of the data object is stored in the cache server is used to update the change rate for the data object.
-
8. The method of claim 5, wherein the time associated with when the request is received is used to update the hit rate for the data object.
-
9. The method of claim 1, wherein the freshness for the data object comprises a measured freshness value and a freshness value received from an owner of the data object.
-
10. The method of claim 9, wherein the time-to-live period is adjusted by a scaling factor, wherein the scaling factor is proportional to a difference between the measured freshness value and the freshness value received from the owner of the data object.
-
11. The method of claim 1, wherein the time-to-live period is shorter when the hit rate is increased for the data object.
-
12. The method of claim 1, wherein the time-to-live period is shorter when the change rate is increased for the data object.
-
14. The method of claim 1, comprising,
receiving a freshness value for the data object; - and
generating a scaling factor for the time-to-live period based on the freshness value, wherein the time-to-live period is calculated based on the scaling factor.
- and
-
15. The method of claim 14, wherein the freshness value comprises a measured freshness value and a freshness value received from an owner of the data object.
-
16. The method of claim 15, wherein the scaling factor is adjusted by a factor proportional to a difference between the measured freshness value and the freshness value received from the owner of the data object.
-
13. A method comprising:
-
receiving a hit rate and a change rate for a data object stored in a cache; and
updating a time-to-live period for the data object stored in the cache based on the hit rate and the change rate for the data object. - View Dependent Claims (17, 18, 19)
-
-
20. A machine-readable medium that provides instructions, which when executed by a machine, cause said machine to perform operations comprising:
-
receiving a hit rate and a change rate for a data object stored in a cache; and
updating a time-to-live period for the data object stored in the cache based on the hit rate and the change rate for the data object. - View Dependent Claims (21, 22, 23, 24, 25)
receiving a freshness value for the data object; - and
generating a scaling factor for the time-to-live period based on the freshness value, wherein the time-to-live period is calculated based on the scaling factor.
-
-
22. The machine-readable medium of claim 21, wherein the freshness value comprises a measured freshness value and a freshness value received from an owner of the data object.
-
23. The machine-readable medium of claim 22, wherein the scaling factor is adjusted by a factor proportional to a difference between the measured freshness value and the freshness value received from the owner of the data object.
-
24. The machine-readable medium of claim 20, wherein the time-to-live period is smaller when the hit rate is increased for the copy of the data object.
-
25. The machine-readable medium of claim 20, wherein the time-to-live period is smaller when the change rate is increased for the copy of the data object.
-
26. A machine-readable medium that provides instructions, which when executed by a machine, cause said machine to perform operations comprising:
-
receiving, at a cache server, a request for a data object stored in a data object server;
determining whether a time-to-live period associated with a copy of the data object stored in the cache server has expired, wherein the time-to-live period is based on a hit rate, a change rate and a freshness for the data object; and
transmitting the data object stored in the cache server upon determining the time-to-live period associated with the copy of the data object stored in the cache server has not expired. - View Dependent Claims (27, 28, 29, 30, 31)
generating a new copy of the data object retrieved from the data object server; - and
transmitting the data object retrieved from the data object server.
-
-
29. The machine-readable medium of claim 28, comprising updating the time-to-live period associated with the data object.
-
30. The machine-readable medium of claim 26, wherein the time-to-live period is shorter when the hit rate is increased for the data object.
-
31. The machine-readable medium of claim 26, wherein the time-to-live period is shorter when the change rate is increased for the data object.
-
32. An apparatus comprising:
-
a database to store a copy of a data object from a data object server and to associate a time-to-live period with the copy of the data object; and
an inline cache server coupled to the data object server, the inline cache server to process requests for data objects destined for the data object server, the inline cache server to serve the copy of the data object if the time-to-live period has not expired, and the inline cache server to update the time-to-live period for the data object based on a hit rate and a change rate for the data object. - View Dependent Claims (33, 34, 35, 36, 37)
-
-
38. A system comprising:
-
a data object server to store data objects; and
a dynamic application cache server coupled to the data object server, the dynamic application cache server to store a copy of data objects, wherein a time-to-live period is associated with the copies of the data objects, the time-to-live periods based on a hit rate and a change rate for the data objects, the dynamic application cache server coupled to receive requests for the data objects from a number of requesting units, wherein the dynamic application cache server is to output copies of the data objects to the requesting units, without retrieving the data objects from the data object servers, upon determining that the time-to-live periods for the data objects have not expired. - View Dependent Claims (39, 40)
-
-
41. An apparatus comprising:
-
request receiving logic coupled to receive a request for a data object stored in a data object server from a requesting unit;
copy verifier logic coupled to the request receiving logic and the data object server, the copy verifier logic to determine if a copy of the data object is stored within a database of the apparatus;
time-to-live verifier logic coupled to the copy verifier logic and the data object server, the time-to-live verifier logic to determine whether the time-to-live period associated with the copy of the data object has expired, wherein the time-to-live period is based on a hit rate, a change rate and a freshness for the data object; and
serving logic coupled to the time-to-live verifier logic, the serving logic to transmit the copy of the data object stored within the database to the requesting unit upon determining the copy of the data object is stored within the database and the time-to-live period has not expired. - View Dependent Claims (42, 43, 44)
-
-
45. A method comprising:
-
receiving a hit rate that indicates requests for a data object are transmitted to a data object server;
receiving a change rate that indicates the data object is updated within a cache;
receiving a percentage of the data object served by the cache that is identical to the data object in the data object server; and
generating a time-to-live period for the data object stored in the cache based on the rate that the requests for the data object are transmitted to the data object server, and the rate the data object is updated by the data object server, and the percentage of the data object served by the cache that is identical to the data object stored in the data object server. - View Dependent Claims (46, 47, 48)
-
-
49. A machine-readable medium that provides instructions, which when executed by a machine, cause said machine to perform operations comprising:
-
receiving a hit rate that indicates requests for a data object are transmitted to a data object server;
receiving a change rate that indicates the data object is updated within a cache;
receiving a percentage of the data object served by the cache that is identical to the data object in the data object server; and
generating a time-to-live period for the data object stored in the cache based on the rate that the requests for the data object are transmitted to the data object server, and the data object is updated by the data object server, and the percentage of the data object served by the cache that is identical to the data object stored in the data object server. - View Dependent Claims (50, 51, 52)
-
Specification