Systems and methods for profiling a non-volatile cache having a logical-to-physical translation layer
First Claim
1. An apparatus, comprising:
- a cache module configured to cache data of a backing store on a non-volatile storage device and to maintain access metadata pertaining to logical identifiers of data of the backing store, wherein the access metadata comprises access characteristics pertaining to logical identifiers of data of the backing store that is cached on the non-volatile storage device and logical identifiers of data of the backing store that is not cached on the non-volatile storage device; and
a performance analysis module configured to calculate a cache performance metric based on the access metadata;
wherein the cache module is further configured to selectively admit data of the backing store into the cache based on the access metadata, and to determine a sequentiality metric of a logical identifier selected for admission into the cache and to admit data of one or more logically adjacent logical identifiers into the cache in response to the sequentiality metric satisfying a threshold, wherein the sequentiality metric is based on logically proximate access requests within a predetermined window within a history of access requests, wherein the performance analysis module is configured to calculate an optimal window based on the access metadata, andwherein the cache module and the performance analysis module comprise one or more of a circuit, a programmable circuit, and instructions stored on a non-transitory computer-readable storage medium.
9 Assignments
0 Petitions
Accused Products
Abstract
A cache module leverages a logical address space and storage metadata of a storage module (e.g., virtual storage module) to cache data of a backing store. The cache module maintains access metadata to track access characteristics of logical identifiers in the logical address space, including accesses pertaining to data that is not currently in the cache. The access metadata may be separate from the storage metadata maintained by the storage module. The cache module may calculate a performance metric of the cache based on profiling metadata, which may include portions of the access metadata. The cache module may determine predictive performance metrics of different cache configurations. An optimal cache configuration may be identified based on the predictive performance metrics.
301 Citations
17 Claims
-
1. An apparatus, comprising:
-
a cache module configured to cache data of a backing store on a non-volatile storage device and to maintain access metadata pertaining to logical identifiers of data of the backing store, wherein the access metadata comprises access characteristics pertaining to logical identifiers of data of the backing store that is cached on the non-volatile storage device and logical identifiers of data of the backing store that is not cached on the non-volatile storage device; and a performance analysis module configured to calculate a cache performance metric based on the access metadata; wherein the cache module is further configured to selectively admit data of the backing store into the cache based on the access metadata, and to determine a sequentiality metric of a logical identifier selected for admission into the cache and to admit data of one or more logically adjacent logical identifiers into the cache in response to the sequentiality metric satisfying a threshold, wherein the sequentiality metric is based on logically proximate access requests within a predetermined window within a history of access requests, wherein the performance analysis module is configured to calculate an optimal window based on the access metadata, and wherein the cache module and the performance analysis module comprise one or more of a circuit, a programmable circuit, and instructions stored on a non-transitory computer-readable storage medium. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. An apparatus, comprising:
-
a storage module configured to map logical identifiers corresponding to a backing store to storage locations of cache data of the backing store on a non-volatile storage device; a cache module configured to generate access characteristics of the logical identifiers, including access characteristics of non-cached logical identifiers; a metadata persistence module configured to store cache profiling metadata on a computer-readable storage medium, wherein the cache profiling metadata corresponds to the access characteristics; a cache admission module configured to selectively admit data of the backing store into a cache on the non-volatile storage device based on the access metadata, and to determine a sequentiality metric of a logical identifier selected for admission into the cache and to admit data of one or more logically adjacent logical identifiers into the cache in response to the sequentiality metric satisfying a threshold, wherein the sequentiality metric is based on previous access requests within a threshold logical proximity to the logical identifier; and a performance analysis module configured to calculate a cache performance metric by use of the persisted access metadata and to calculate a predicted cache performance metric corresponding to use of a different threshold logical proximity, wherein the storage module, cache module, metadata persistence module, cache admission module, and performance analysis module comprise one or more of a circuit, a programmable circuit, and instructions stored on a non-transitory computer-readable storage medium. - View Dependent Claims (11, 12, 13)
-
-
14. A computer program product comprising a non-transitory computer readable storage medium storing computer usable program code executable to perform operations, the operations comprising:
-
generating access data structures configured to indicate access characteristics of logical identifiers within a logical address space of a backing store; admitting data of the backing store into a cache based on access metrics of the logical identifiers, wherein the access metrics of the logical identifiers are derived from one or more of the access data structures; and calculating a predictive cache performance metric corresponding to a different cache configuration by use of one or more of the access data structures, wherein calculating the predictive cache performance metric comprises; replaying a history of access requests to logical identifiers within the logical address space, and simulating selective admission into the cache based on the different cache configuration. - View Dependent Claims (15, 16, 17)
-
Specification