Systems and Methods of Providing A Multi-Tier Cache
First Claim
1. A method of storing objects in a cache using multiple storage tiers based on size of objects and maintaining a number of smaller objects stored to the cache within a predetermined threshold, the method comprising the steps of:
- (a) establishing a size of a storage for a cache to store cached objects, the cache using a first portion of the storage for storing objects smaller than or equal to a first threshold object size and a second portion of the storage for storing objects larger than the first threshold object size;
(b) identifying a number of objects the cache is allowed to store to the first portion of the storage;
(c) receiving an object for caching;
(d) determining to store the object in one of the first portion of the storage or the second portion of the storage based on a size of the object; and
(e) maintaining the number of objects the cache is allowed to store to the first portion of the storage below a predetermined threshold.
8 Assignments
0 Petitions
Accused Products
Abstract
The present solution provides a variety of techniques for accelerating and optimizing network traffic, such as HTTP based network traffic. The solution described herein provides techniques in the areas of proxy caching, protocol acceleration, domain name resolution acceleration as well as compression improvements. In some cases, the present solution provides various prefetching and/or prefreshening techniques to improve intermediary or proxy caching, such as HTTP proxy caching. In other cases, the present solution provides techniques for accelerating a protocol by improving the efficiency of obtaining and servicing data from an originating server to server to clients. In another cases, the present solution accelerates domain name resolution more quickly. As every HTTP access starts with a URL that includes a hostname that must be resolved via domain name resolution into an IP address, the present solution helps accelerate HTTP access. In some cases, the present solution improves compression techniques by prefetching non-cacheable and cacheable content to use for compressing network traffic, such as HTTP. The acceleration and optimization techniques described herein may be deployed on the client as a client agent or as part of a browser, as well as on any type and form of intermediary device, such as an appliance, proxying device or any type of interception caching and/or proxying device.
-
Citations
72 Claims
-
1. A method of storing objects in a cache using multiple storage tiers based on size of objects and maintaining a number of smaller objects stored to the cache within a predetermined threshold, the method comprising the steps of:
-
(a) establishing a size of a storage for a cache to store cached objects, the cache using a first portion of the storage for storing objects smaller than or equal to a first threshold object size and a second portion of the storage for storing objects larger than the first threshold object size; (b) identifying a number of objects the cache is allowed to store to the first portion of the storage; (c) receiving an object for caching; (d) determining to store the object in one of the first portion of the storage or the second portion of the storage based on a size of the object; and (e) maintaining the number of objects the cache is allowed to store to the first portion of the storage below a predetermined threshold. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 39)
-
-
13. A method of storing objects in a cache using multiple storage tiers based on size of objects and storing objects larger than an object threshold size to a portion of storage used by the cache, the method comprising the steps of:
-
(a) establishing a predetermined size for a first portion of storage used by a cache for storing objects larger than a first threshold object size, the cache storing objects smaller than the first threshold object size to a remaining portion of storage used by the cache; (b) receiving an object for caching; (c) determining a size of the object is greater than a first threshold object size; and (d) storing the object in the first portion of storage responsive to the determination. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A method of managing a size of objects stored in a cache using multiple storage tiers based on size of objects, the method maintaining a size of memory used by the cache for holding object indexes while changing a size of storage used by the cache for storing objects indexed by the object index, the method comprising the steps of:
-
(a) establishing a size of memory used by a cache for holding indexes to objects stored to a storage, the storage having a storage size, the cache using a first portion of the storage established for storing objects smaller than or equal to a first threshold object size and a second portion of the storage established for storing objects larger than the first threshold object size; (b) identifying a number of objects the cache is allowed to store to the first portion of the storage; (c) changing the size of the storage used by the cache for storing objects while maintaining the size of memory of the cache for storing indexes to the objects; and (d) maintaining the number of objects the cache is allowed to store to the first portion of the storage below a predetermined threshold in response to changing the size of the storage used by the cache. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43)
-
-
44. A method of managing a size of objects stored in a cache using multiple storage tiers based on size of objects, the method changing a size of memory used by the cache for holding object indexes while maintaining a size of storage used by the cache for storing objects indexed by the object index, the method comprising the steps of:
-
(a) establishing a size of memory used by a cache for holding indexes to objects stored to a storage, the storage having a storage size, the cache using a first portion of the storage for storing objects smaller than or equal to a first threshold object size and a second portion of the storage for storing objects larger than the first threshold object size; (b) identifying a number of objects the cache is allowed to store to the first portion of the storage; (c) changing the size of memory used by the cache for holding object indexes while maintaining the size of storage used by the cache for storing objects; and (d) maintaining the number of objects the cache is allowed to store to the first portion of the storage below a predetermined threshold in response to changing the size of the memory used by the cache. - View Dependent Claims (45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60)
-
-
61. A method of managing a size of objects stored in a cache using multiple storage tiers based on size of objects, the method allocating a portion of storage used by the cache for storing larger objects, the method comprising the steps of:
-
(a) establishing a size of memory used by a cache for holding indexes to objects stored to a storage, the storage having a storage size; (b) establishing a first predetermined size of a first portion of a storage of a cache for storing objects larger than a first threshold object size, the cache using a second portion of the storage of the cache to store objects smaller than the first threshold object size; (c) changing one of the size of memory or the storage size used by the cache; and (d) maintaining the first predetermined size of the first portion of the storage of the cache in response to changing one of the size of memory or the storage size used by the cache. - View Dependent Claims (62, 63, 64, 65, 66, 67, 68, 69, 70, 71)
-
-
72. The method of claim 72, comprising adjusting the second threshold object size in response to changing one of the size of memory or the storage size used by the cache.
Specification