Methods and apparatus for caching network traffic
First Claim
Patent Images
1. A method for caching a first data object in a cache, comprising:
- in response to a data request for the first data object, determining whether the first data object is currently cached;
where the first data object is not currently cached, determining whether to cache the first data object with reference to a miss count associated with the first data object and maintained by the cache, the miss count corresponding to a number of times a cache miss for the first data object has occurred; and
caching the first data object where the first data object is not currently cached and where more than one cache miss corresponding to the first data object has occurred.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods and apparatus are described for caching a first data object in a cache. In response to a data request for the first data object, it is determined whether the first data object is currently cached. Where the first data object is not currently cached, it is determined whether to cache the first data object with reference to at least one parameter associated with the first data object.
85 Citations
31 Claims
-
1. A method for caching a first data object in a cache, comprising:
-
in response to a data request for the first data object, determining whether the first data object is currently cached;
where the first data object is not currently cached, determining whether to cache the first data object with reference to a miss count associated with the first data object and maintained by the cache, the miss count corresponding to a number of times a cache miss for the first data object has occurred; and
caching the first data object where the first data object is not currently cached and where more than one cache miss corresponding to the first data object has occurred. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
monitoring request statistics for a plurality of data objects; and
determining from the request statistics how many cache misses should occur for a particular data object before the particular data object is cached.
-
-
13. The method of claim 1 further comprising:
-
determining whether a cache population corresponding to an amount of data stored in the cache is below a threshold value; and
where the cache population is below the threshold value, caching the first data object without regard to the miss count.
-
-
14. The method of claim 1 further comprising:
-
determining a frequency with which a capacity cache population is overwritten; and
determining from the frequency how many cache misses should occur for the first data object before the first data object is cached.
-
-
15. The method of claim 1 wherein determining whether the first data object is cached comprises referring to a file system associated with the cache.
-
16. The method of claim 1 further comprising retrieving the first data object, wherein retrieving the first data object comprises establishing a TCP/IP connection between the cache and a destination host on which the first data object is stored.
-
17. The method of claim 1 wherein caching the first data object comprises:
-
writing the first data object to a data buffer in the network cache;
writing the first data object from the data buffer to nonvolatile memory in the network cache; and
removing the first data object from the data buffer in response to writing the first data object to the nonvolatile memory.
-
-
18. The method of claim 17 further comprising:
-
in response to a subsequent request for the first data object, servicing the subsequent request from the nonvolatile memory;
rewriting the first data object from the nonvolatile memory to the data buffer.
-
-
19. The method of claim 18 further comprising determining a number of requests between the first and subsequent requests with reference to at least one system level metric.
-
20. The method of claim 18 further comprising determining a number of requests between the first and subsequent requests with reference to hit rate statistics.
-
21. A computer program product for caching a first data object in a cache, comprising:
-
at least one computer-readable medium; and
a computer program mechanism embedded in the at least one computer-readable medium for causing a computer to;
in response to a data request for the first data object, determine whether the first data object is currently cached;
where the first data object is not currently cached, determine whether to cache the first object with reference to a miss count associated with the first data object and maintained by the cache, the miss count corresponding to a number of times a cache miss for the first data object has occurred; and
cache the first data object where the first data object is not currently cached and where more than one cache miss corresponding to the first data object has occurred.
-
-
22. An apparatus for caching a first data object in a cache, comprising:
-
means for determining whether the first data object is currently cached in response to a data request for the first data object;
means for determining whether to cache the first object with reference to a miss count associated with the first data object and maintained by the cache where the first data object is not currently cached, the miss count corresponding to a number of times a cache miss for the first data object has occurred; and
means for caching the first data object where the first data object is not currently cached and where more than one cache miss corresponding to the first data object has occurred.
-
-
23. A network cache, comprising:
-
cache memory for storing a plurality of data objects;
an operating system which is operable to determine whether the first data object is currently cached in response to a data request for the first data object;
determine whether to cache the first object with reference to a miss count associated with the first data object and maintained by the cache where the first data object is not currently cached, the miss count corresponding to a number of times a cache miss for the first data object has occurred; and
cache the first data object where the first data object is not currently cached and where more than one cache miss corresponding to the first data object has occurred.
-
-
24. A method for caching a first data object in a cache in a network, comprising:
-
monitoring cache hit statistics for a plurality of data objects on the network;
determining from the cache hit statistics that a first number of cache misses should occur for the particular data object before the particular data object is stored in the cache;
in response to a data request for the first data object from a requesting host on the network, determining whether the first data object is currently cached; and
where the first data object is not currently cached and where the first number of cache misses corresponding to the first data object have occurred, caching the first data object.
-
-
25. A method for caching a first data object in a network cache, comprising:
-
receiving a first request for the first data object from a requesting host;
where the first data object is not currently cached in the network cache and in response to the first request, retrieving the first data object and transmitting the first data object to the requesting host without caching the first data object in the network cache;
making an entry in the network cache indicating that at least one cache miss corresponding to the first data object has occurred;
receiving a subsequent request for the first data object; and
where the first data object is not currently cached in the network cache and in response to the subsequent request, retrieving the first data object, transmitting the first data object to the requesting host, and, in response to the entry indicating at least one cache miss, caching the first data object in the network cache.
-
-
26. A computer program product for caching a first data object in a cache in a network, comprising:
-
at least one computer-readable medium; and
a computer program mechanism embedded in the at least one computer-readable medium for causing a computer to;
monitor cache hit statistics for a plurality of data objects on the network;
determine from the cache hit statistics that a first number of cache misses should occur for the particular data object before the particular data object is stored in the cache;
in response to a data request for the first data object from a requesting host on the network, determine whether the first data object is currently cached; and
where the first data object is not currently cached and where the first number of cache misses corresponding to the first data object have occurred, cache the first data object.
-
-
27. An apparatus for caching a first data object in a cache in a network, comprising:
-
means for monitoring cache hit statistics for a plurality of data objects on the network;
means for determining from the cache hit statistics that a first number of cache misses should occur for the particular data object before the particular data object is stored in the cache;
means for determining whether the first data object is currently cached in response to a data request for the first data object from a requesting host on the network; and
means for caching the first data object where the first data object is not currently cached and where the first number of cache misses corresponding to the first data object have occurred.
-
-
28. A network cache, comprising:
-
cache memory for storing a plurality of data objects; and
an operating system which is operable to;
monitor cache hit statistics for a plurality of data objects on a network;
determine from the cache hit statistics that a first number of cache misses should occur for the particular data object before the particular data object is stored in the network cache;
in response to a data request for the first data object from a requesting host on the network, determine whether the first data object is currently cached; and
where the first data object is not currently cached and where the first number of cache misses corresponding to the first data object have occurred, cache the first data object.
-
-
29. A computer program product for caching a first data object in a network cache, comprising:
-
at least one computer-readable medium; and
a computer program mechanism embedded in the at least one computer-readable medium for causing a computer to;
receive a first request for the first data object from a requesting host;
where the first data object is not currently cached in the network cache and in response to the first request, retrieve the first data object and transmit the first data object to the requesting host without caching the first data object in the network cache;
make an entry in the network cache indicating that at least one cache miss corresponding to the first data object has occurred;
receive a subsequent request for the first data object; and
where the first data object is not currently cached in the network cache and in response to the subsequent request, retrieve the first data object, transmit the first data object to the requesting host, and, in response to the entry indicating at least one cache miss, cache the first data object in the network cache.
-
-
30. An apparatus for caching a first data object in a network cache, comprising:
-
means for receiving a first request for the first data object from a requesting host;
means for retrieving the first data object and transmitting the first data object to the requesting host without caching the first data object in the network cache where the first data object is not currently cached in the network cache and in response to the first request;
means for making an entry in the network cache indicating that at least one cache miss corresponding to the first data object has occurred;
means for receiving a subsequent request for the first data object; and
means for retrieving the first data object, transmitting the first data object to the requesting host, and, in response to the entry indicating at least one cache miss, caching the first data object in the network cache where the first data object is not currently cached in the network cache and in response to the subsequent request.
-
-
31. A network cache, comprising:
-
cache memory for storing a plurality of data objects; and
an operating system which is operable to;
receive a first request for the first data object from a requesting host;
where the first data object is not currently cached in the network cache and in response to the first request, retrieve the first data object and transmit the first data object to the requesting host without caching the first data object in the network cache;
make an entry in the network cache indicating that at least one cache miss corresponding to the first data object has occurred;
receive a subsequent request for the first data object; and
where the first data object is not currently cached in the network cache and in response to the subsequent request, retrieve the first data object, transmit the first data object to the requesting host, and, in response to the entry indicating at least one cache miss, cache the first data object in the network cache.
-
Specification