Memory admission control based on object size or request frequency
First Claim
1. A method of managing a computer memory by selectively admitting new objects into the memory, comprising:
- receiving requests for objects not stored in the memory;
determining, as to each of the requested objects, whether the requested object has previously been requested a designated number of times, wherein the designated number is fixed;
as to each of the requested objects determined to have previously been requested the designated number of times, storing the requested object in the memory based upon that determination;
receiving requests for additional objects not stored in the memory, wherein at least some of the additional requested objects have not previously been requested the designated number of times;
determining, as to each of the additional requested objects, whether the additional requested object satisfies a size criterion;
as to each of the additional requested objects satisfying the size criterion, storing the additional requested object in the memory based upon the additional requested object satisfying the size criterion and without regard to whether the additional requested object has previously been requested the designated number of times; and
evicting one or more previously-stored objects in connection with storing one of the additional requested objects that satisfies the size criterion and that has not previously been requested.
2 Assignments
0 Petitions
Accused Products
Abstract
Admission of new objects into a memory such as a web cache is selectively controlled. If an object is not in the cache, but has been requested a specified number of prior occasions (e.g., if the object has been requested at least once before), it is admitted into the cache regardless of size. If the object has not previously been requested the specified number of times, the object is admitted into the cache if the object satisfies a specified size criterion (e.g., if it is smaller than the average size of objects currently stored in the cache). To make room for new objects, other objects are evicted from the cache on, e.g., a Least Recently Used (LRU) basis. The invention could be implemented on existing web caches, on distributed web caches, in client-side web caching, and in contexts unrelated to web object caching.
-
Citations
44 Claims
-
1. A method of managing a computer memory by selectively admitting new objects into the memory, comprising:
-
receiving requests for objects not stored in the memory; determining, as to each of the requested objects, whether the requested object has previously been requested a designated number of times, wherein the designated number is fixed; as to each of the requested objects determined to have previously been requested the designated number of times, storing the requested object in the memory based upon that determination; receiving requests for additional objects not stored in the memory, wherein at least some of the additional requested objects have not previously been requested the designated number of times; determining, as to each of the additional requested objects, whether the additional requested object satisfies a size criterion; as to each of the additional requested objects satisfying the size criterion, storing the additional requested object in the memory based upon the additional requested object satisfying the size criterion and without regard to whether the additional requested object has previously been requested the designated number of times; and evicting one or more previously-stored objects in connection with storing one of the additional requested objects that satisfies the size criterion and that has not previously been requested. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method of managing a computer memory by selectively admitting new objects into the memory, comprising:
-
receiving a request for an object not stored in the memory; storing the objcct in the memory if it has previously been requested a designated number of times; storing the object in the memory if its size satisfies a size criterion; and evicting, as may be necessary in connection with storing a not-previously-requested object having a size satisfying the size criterion, one or more currently stored objects, wherein; storing the object in the memory if it has previously been requested comprises storing the object in memory if the object has been requested one prior time, and storing the object in memory if its size satisfies the size criterion comprises storing the object in memory if it is smaller than the average size of objects currently stored. - View Dependent Claims (12)
-
-
13. A method of managing a computer memory by selectively admitting new objects into the memory, comprising:
-
receiving a request for an object not stored in the memory; storing the object in the memory if it has previously been requested a designated number of times; storing the object in the memory if its size satisfies a size criterion; and evicting, as may be necessary in connection with storing a not-previously-requested object having a size satisfying the size criterion, one or more currently stored objects, wherein; receiving a request for an object comprises receiving a request for an object having a Universal Resource Locator (URL), storing the object in the memory if it has previously been requested comprises storing the object in memory if the object has been requested one prior time, and storing the object in memory if its size satisfies the size criterion comprises storing the object in memory if it is smaller than the average size of objects currently stored. - View Dependent Claims (14)
-
-
15. A server, comprising:
-
at least one network connection permitting communication with client devices and with origin servers providing objects; a memory; and a processor configured to control admission of objects into the memory by receiving requests for objects not stored in the memory and retrieving the requested objects from one or more of the origin servers, determining, as to each of the requested objects, whether the requested object has previously been requested a designated number of times, wherein the designated number is fixed, as to each of the requested objects determined to have previously been requested the designated number of times, storing the requested object in the memory based upon that determination, receiving requests for additional objects not stored in the memory, wherein at least some of the additional requested objects have not previously been requested the designated number of times, and retrieving the additional requested objects from one or more of the origin servers, determining, as to each of the additional requested objects, whether the additional requested object satisfies a size criterion, as to each of the additional requested objects satisfying the size criterion, storing the additional requested object in the memory based upon the additional requested object satisfying the size criterion and without regard to whether the additional requested object has previously been requested the designated number of times, and evicting one or more previously-stored objects, in connection with storing one of the additional requested objects that satisfies the size criterion and that has not previously been requested. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A server, comprising:
-
at least one network connection permitting communication with client devices and with one or more origin servers providing objects; a memory; and a processor configured to control admission of objects into the memory by receiving a request for an object not stored in the memory and retrieving the object from an origin server, storing the object in the memory if it has previously been requested one prior time, storing the object in the memory if its size is smaller than the average size of objects currently stored, and evicting, as may be necessary in connection with storing a not-previously-requested object having a size that satisfies the size criterion, one or more currently stored objects. - View Dependent Claims (26, 27, 28)
-
-
29. A machine-readable medium having machine-executable instructions for performing steps comprising:
-
receiving requests for objects not stored in a memory; determining, as to each of the requested objects, whether the requested object has previously been requested a designated number of times, wherein the designated number is fixed; as to each of the requested objects determined to have previously been requested the designated number of times, storing the requested object in the memory based upon that determination; receiving requests for additional objects not stored in the memory, wherein at least some of the additional requested objects have not previously been requested the designated number of times; determining, as to each of the additional requested objects, whether the additional requested object satisfies a size criterion; as to each of the additional requested objects satisfying the size criterion, storing the additional requested object in the memory based upon the additional requested object satisfying the size criterion and without regard to whether the additional requested object has previously been requested the designated number of times; and evicting one or more previously-stored objects, in connection with storing one of the additional requested objects that satisfies the size criterion and that has not previously been requested. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36, 37, 38)
-
-
39. A machine-readable medium having machine-executable instructions for performing steps comprising:
-
receiving a request for an object not stored in a memory; storing the object in the memory if it has previously been requested a designated number of times; storing the object in the memory if its size satisfies a size criterion; and evicting, as may be necessary in connection with storing a not-previously-requested object having a size satisfying the size criterion, one or more currently stored objects, wherein storing the object in the memory if it has previously been requested comprises storing the object in memory if the object has been requested one prior time, and storing the object in memory if its size satisfies the size criterion comprises storing the object in memory if it is smaller than the average size of objects currently stored. - View Dependent Claims (40)
-
-
41. A machine-readable medium having machine-executable instructions for performing steps comprising:
-
receiving a request for an object not stored in a memory; storing the object in the memory if it has previously been requested a designated number of times; storing the object in the memory if its size satisfies a size criterion; and evicting, as may be necessary in connection with storing a not-previously-requested object having a size satisfying the size criterion, one or more currently stored objects, wherein receiving a request for an object comprises receiving a request for an object having a Universal Resource Locator (URL), storing the object in the memory if it has previously been requested comprises storing the object in memory if the object has been requested one prior time, and storing the object in memory if its size satisfies the size criterion comprises storing the object in memory if it is smaller than the average size of objects currently stored. - View Dependent Claims (42)
-
-
43. A method of controlling admission of objects into a web cache, comprising:
-
receiving a request for an object not in the cache, the object being identifiable by a Universal Resource Locator (URL); determining if the object has previously been requested; caching the object if it has previously been requested; updating, if the object has not been previously requested, a first data record to indicate that the object has been requested; comparing the size of the object to the average size of objects currently cached; caching the object if its size is less than the average size of objects currently cached; evicting, in connection with caching the object, one or more currently cached objects on a Least Recently Used (LRU) basis; updating, upon admission of the object into the cache a second data record to indicate presence of the object in the cache; and recalculating the average size of currently cached objects based upon the presence of the object in the cache.
-
-
44. A method of managing a computer memory by selectively admitting new objects into the memory, comprising:
-
(a) receiving requests for objects not stored in the memory; (b) evaluating each of the objects according to a first criterion, wherein the first criterion is based solely on the number of previous requests for the object; (c) as to each of the objects satisfying the first criterion in step (b), storing the object in the memory based on satisfaction of the first criterion; (d) as to each of the objects not satisfying the first criterion in step (b), evaluating the object according to a second criterion, wherein the second criterion is based solely on size of the object in comparison to another size value; (e) as to each of the objects satisfying the second criterion in step (d), storing the object in the memory based on satisfaction of the second criterion; (f) as to each of the objects not satisfying the second criterion in step (d), not storing the object in the memory until a subsequent request for the object; and (g) evicting one or more previously stored objects in connection with storing one of the objects that satisfies the second criterion and does not satisfy the first criterion.
-
Specification