Caching data using multiple cache devices
First Claim
1. A system comprising:
- a processor; and
memory operatively coupled to the processor, the memory storing one or more engines configured for execution by the processor, the one or more engines including a monitor engine that when executed, by the processor is operable to;
receive cache metadata from a plurality of cache devices, each cache device configured for caching a plurality of data blocks for a set of storage devices that store the plurality of data blocks, the cache metadata for the cache device describing caching of the plurality of data blocks by the cache device;
normalize the cache metadata of the cache device by dividing a number of block accesses directed to a data block of the plurality of data blocks cached at the cache device by a number of cache accesses for the cache device to produce normalized cached metadata; and
select the data block for caching based on the normalized cache metadata of the cache device.
1 Assignment
0 Petitions
Accused Products
Abstract
System and method for processing cache metadata from a plurality of cache devices. One or more storage systems may store data blocks to a set of storage devices, each storage system hosting and operating one or more cache devices for caching data blocks of the storage devices. Each cache device may host and implement an agent engine that collects and stores cache metadata for the cache device, the cache metadata describing caching operations of the cache device. A monitor engine receives and aggregates “raw cache metadata” from each of a plurality of cache devices and processes the raw cache metadata to produce processed cache metadata comprising normalized cache metadata (based on activity rate of a cache device), weighted cache metadata, or normalized weighted cache metadata. The processed cache metadata is used by a cache prediction engine to select data blocks for caching to one or more of the cache devices.
59 Citations
21 Claims
-
1. A system comprising:
-
a processor; and memory operatively coupled to the processor, the memory storing one or more engines configured for execution by the processor, the one or more engines including a monitor engine that when executed, by the processor is operable to; receive cache metadata from a plurality of cache devices, each cache device configured for caching a plurality of data blocks for a set of storage devices that store the plurality of data blocks, the cache metadata for the cache device describing caching of the plurality of data blocks by the cache device; normalize the cache metadata of the cache device by dividing a number of block accesses directed to a data block of the plurality of data blocks cached at the cache device by a number of cache accesses for the cache device to produce normalized cached metadata; and select the data block for caching based on the normalized cache metadata of the cache device. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A non-transitory computer readable storage medium containing executable program instructions for execution on a processor and configured to be stored on the non-transitory computer readable storage medium, the program instructions when executed operable to:
-
receive cache metadata from a plurality of cache devices, each cache device configured to cache a plurality of data blocks for a set of storage devices that store the plurality of data blocks, the cache metadata for the cache device describing caching of the cache device; normalize the cache metadata of the cache device by dividing a number of block accesses for a data block of the plurality of data blocks cached at the cache device by a number of cache accesses for the cache device to produce normalized cache metadata; and select the data block for caching based on the normalized cache metadata of the cache device. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computer-implemented method comprising:
-
receiving cache metadata from a plurality of cache devices, each cache device configured to cache a plurality of data blocks for a set of storage devices that store the plurality of data blocks, the cache metadata for the cache device describing caching of the plurality of data blocks by the cache device; normalizing, by a processor of a computer, the cache metadata of the cache device by dividing a number of block accesses for a data block of the plurality of data blocks cached at the cache device by a number of cache accesses for the cache device to produce normalized cache metadata; and selecting the data block for caching based on the normalized cache metadata. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
Specification