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:
- (a) establishing, by a cache manager executing on a device, a fixed size of a storage for a cache to store cached objects communicated via network traffic and a plurality of tiers across the fixed size of the storage, the plurality of tiers comprising a first tier of storage for storing objects smaller than or equal to a first threshold object size and a second tier of storage for storing objects larger than the first threshold object size;
(b) identifying, by the cache manager, a maximum number of objects the cache is allowed to store to the first tier of storage, the cache manager allocating a portion of the fixed size of the storage to the first tier of storage based on the maximum number of objects multiplied by the first threshold object size;
(c) receiving, by the cache manager a request to store an object of an application for caching, the object comprising data communicated by the application via a protocol carried by a transport layer protocol;
(d) determining, by the cache manager, to store the object in one of the first tier of the storage or the second tier of the storage based on a size of the object; and
(e) maintaining, by the cache manager responsive to changing the predetermined size of the storage for the cache and while increasing the second tier'"'"'s size, the number of objects the cache is allowed to store to the first tier of storage below a predetermined threshold.
7 Assignments
0 Petitions
Accused Products
Abstract
The present solution provides a multi-tiered caching and cache indexing system is depicted. A cache management system uses a memory based object index to reference or identify corresponding objects stored in disk. The memory used to index object may grow proportionally or in relation to growth in the size of the disk. The techniques described herein minimize, reduce or maintain the size of memory for an object index although the size of storage for storing objects is changed. These techniques allow for more optimal use of memory for object indexing while increasing or decreasing disk size for object storage.
146 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:
-
(a) establishing, by a cache manager executing on a device, a fixed size of a storage for a cache to store cached objects communicated via network traffic and a plurality of tiers across the fixed size of the storage, the plurality of tiers comprising a first tier of storage for storing objects smaller than or equal to a first threshold object size and a second tier of storage for storing objects larger than the first threshold object size; (b) identifying, by the cache manager, a maximum number of objects the cache is allowed to store to the first tier of storage, the cache manager allocating a portion of the fixed size of the storage to the first tier of storage based on the maximum number of objects multiplied by the first threshold object size; (c) receiving, by the cache manager a request to store an object of an application for caching, the object comprising data communicated by the application via a protocol carried by a transport layer protocol; (d) determining, by the cache manager, to store the object in one of the first tier of the storage or the second tier of the storage based on a size of the object; and (e) maintaining, by the cache manager responsive to changing the predetermined size of the storage for the cache and while increasing the second tier'"'"'s size, the number of objects the cache is allowed to store to the first tier of storage below a predetermined threshold. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
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:
-
(a) establishing, by a cache manager executing on a device, a cache with a plurality of tiers across a fixed storage size, the plurality of tiers comprising a first tier of storage having a first predetermined size used by\ the cache for storing objects larger than a first threshold object size and a second tier of storage having a second predetermined size for storing objects smaller than the first threshold object size, the objects communicated via network traffic; (b) receiving, by a network optimization engine, a request to store an object of an application for caching, the object comprising data communicated by the application via a protocol carried by a transport layer protocol; (c) determining, by the cache manager, a size of the object is greater than a first threshold object size; (d) storing, by the cache manager, the object in the first tier of storage responsive to the determination; and (e) maintaining, by the cache manager, the number of objects the cache is allowed to store to the first tier of storage below a predetermined threshold. - 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:
-
(a) establishing, by a cache manager executing on a device, a predetermined size of memory used by a cache for holding indexes to objects communicated by applications via network traffic, the objects of the applications stored to a storage, the storage having a predetermined storage size, the cache comprising a plurality of tiers across the predetermined storage size, the plurality of tiers comprising a first tier of storage established for storing objects smaller than or equal to a first threshold object size and a second tier of storage established for storing objects larger than the first threshold object size; (b) identifying, by the cache manager, a number of objects the cache is allowed to store to the first tier of the storage; (c) changing, by the cache manager, the predetermined storage size used by the cache for storing objects while maintaining the predetermined size of memory of the cache for storing indexes to the objects; and (d) maintaining, by the cache manager, the number of objects the cache is allowed to store to the first tier of storage below a predetermined threshold in response to changing the predetermined storage size used by the cache. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 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, by a cache manager executing on a device, a predetermined size of memory used by a cache for holding indexes to objects communicated by applications via network traffic, the objects of the applications stored to a storage, the storage having a predetermined storage size, the cache comprising a plurality of tiers across the predetermined storage size, the plurality of tiers comprising a first tier of storage for storing objects smaller than or equal to a first threshold object size and a second tier of storage for storing objects larger than the first threshold object size; (b) identifying, by the cache manager, a number of objects the cache is allowed to store to the first tier of storage; (c) changing, by the cache manager, the predetermined size of memory used by the cache for holding object indexes while maintaining the predetermined size of storage used by the cache for storing objects; and (d) maintaining, by the cache manager, the number of objects the cache is allowed to store to the first tier of storage below a predetermined threshold in response to changing the predetermined 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, by a cache manager executing on a device, a fixed size of memory used by a cache for holding indexes to objects of applications stored to a storage, the storage having a fixed storage size, the objects communicated via an application layer protocol; (b) establishing, by the cache manager, a cache comprising a plurality of tiers across the fixed storage size, the plurality of tiers comprising a first predetermined size of a first tier of the cache for storing objects of applications larger than a first threshold object size, the cache using a second tier of storage of the cache to store objects smaller than the first threshold object size; (c) changing, by the cache manager, one of the fixed size of memory or the fixed storage size used by the cache; and (d) maintaining, by the cache manager, the first predetermined size of the first tier of storage of the cache in response to changing one of the fixed size of memory or the fixed storage size used by the cache. - View Dependent Claims (62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72)
-
Specification