Systems and methods for cache and storage device coordination
First Claim
1. An apparatus, comprising:
- a storage controller of a non-volatile storage device configured to cache data of a backing store on the non-volatile storage device; and
a cache manager configured to maintain a window comprising an ordered sequence of data accesses received during respective time intervals, and to use the window to determine sequentiality metrics pertaining to logical identifiers of the backing store, including a particular logical identifier that corresponds to data cached on the non-volatile storage device, wherein the sequentiality metric of the particular logical identifier is based on one or more storage requests in the window corresponding to the particular logical identifier, including;
a first storage request received subsequent to caching the data of the particular logical identifier, anda second storage request pertaining to data cached prior to caching the data of the particular logical identifier on the non-volatile storage device,the sequentiality metric indicating whether the data was cached in a sequential data access,wherein the cache manager is configured to determine whether to evict the data of the particular logical identifier from the non-volatile storage device based on the sequentiality metric.
9 Assignments
0 Petitions
Accused Products
Abstract
A cache module leverages storage metadata to cache data of a backing store on a non-volatile storage device. The cache module maintains access metadata pertaining to access characteristics of logical identifiers in the logical address space, including access characteristics of un-cached logical identifiers (e.g., logical identifiers associated with data that is not stored on the non-volatile storage device). The access metadata may be separate and/or distinct from the storage metadata. The cache module determines whether to admit data into the cache and/or evict data from the cache using the access metadata. A storage module may provide eviction candidates to the cache module. The cache module may select candidates for eviction. The storage module may leverage the eviction candidates to improve the performance of storage recovery and/or grooming operations.
-
Citations
20 Claims
-
1. An apparatus, comprising:
-
a storage controller of a non-volatile storage device configured to cache data of a backing store on the non-volatile storage device; and a cache manager configured to maintain a window comprising an ordered sequence of data accesses received during respective time intervals, and to use the window to determine sequentiality metrics pertaining to logical identifiers of the backing store, including a particular logical identifier that corresponds to data cached on the non-volatile storage device, wherein the sequentiality metric of the particular logical identifier is based on one or more storage requests in the window corresponding to the particular logical identifier, including; a first storage request received subsequent to caching the data of the particular logical identifier, and a second storage request pertaining to data cached prior to caching the data of the particular logical identifier on the non-volatile storage device, the sequentiality metric indicating whether the data was cached in a sequential data access, wherein the cache manager is configured to determine whether to evict the data of the particular logical identifier from the non-volatile storage device based on the sequentiality metric. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A non-transitory computer program product comprising a computer readable storage medium storing computer usable program code executable to perform operations, the operations comprising:
-
determining sequentiality metrics of logical identifiers of a logical address space of a backing store, wherein the sequentiality metrics indicate whether data of the respective logical identifiers pertain to a sequential data access, wherein determining the sequentiality metric for a logical identifier comprises; maintaining windows for respective storage requests, each window comprising an ordered sequence of storage requests received within a temporal threshold of a respective storage request, determining sequentiality metrics for logical identifiers corresponding to the respective storage requests using the windows, wherein determining the sequentiality metric for a logical identifier corresponding to a particular storage request is based on a proximity of the logical identifier to logical identifiers corresponding to storage requests in a window comprising the particular storage request, including a first storage request pertaining to data previously cached on the non-volatile storage medium and a second storage request associated with data that is not cached on the non-volatile storage medium; identifying a set of one or more logical identifiers associated with cache data of the backing store stored on a storage division of the non-volatile storage medium that has been selected for recovery; and determining whether to evict one or more of the logical identifiers in the identified set from the non-volatile storage medium based on sequentiality metrics of the logical identifiers. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. A system, comprising:
-
a storage device configured to map logical identifiers within a logical address space of a backing store to physical storage locations of a non-volatile storage device comprising data of the backing store; a cache module configured to track access characteristics of the logical identifiers of the logical address space of the backing store, wherein the access characteristics correspond to storage requests pertaining to respective logical identifiers, including a window comprising storage requests received within a time threshold of the storage requests, wherein the cache module is further configured to determine sequentiality metrics of the logical identifiers, the sequentiality metrics indicating whether data of the respective logical identifiers corresponds to a sequential data access, wherein the cache module determines a sequentiality metric for a particular logical identifier admitted into the cache in response to a storage request based on storage requests within the window corresponding to the storage request, the storage requests including a first storage request pertaining to a first logical identifier that is not mapped to a physical storage location of the non-volatile storage device and a second storage request pertaining to a second logical identifier cached on the non-volatile storage device; and a cache eviction module configured to select data of the backing store for removal from the non-volatile storage device by use of the access characteristics and the sequentiality metrics. - View Dependent Claims (17, 18, 19, 20)
-
Specification